beego利用数据库表名动态创建models中的对象
这是在models中定义的一个struct,beego中的数据库名称为test_books_type
package models
import (
"github.com/astaxie/beego/orm"
)
type Books_type struct {
Guid string `orm:"pk"`
Top_guid string
Type_name string
}
func init() {
orm.RegisterModelWithPrefix("test_", new(Books_type))
}
现在的情况是我有多个models文件,见了很多struct,每个struct多对应一张数据库表,前缀为test_,我怎样才能根据得到的表的名字来创建对应的model??举例,我获得了表名为test_movie_type,我怎样创建new(models.Movie_type),求指教!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
大可不必这样,既然知道了表名,直接利用原生语句插入值即可,还是太依赖经验和框架了,应该灵活处理问题
这要用到反射原理。
参考:golang使用反射创建对象
不需要管表名,直接 new(struct的名字) 就可以了。
使用的时候,字段也是使用struct中的字段,而不是实际表中的字段。