beego利用数据库表名动态创建models中的对象

发布于 2022-09-06 03:09:13 字数 473 浏览 14 评论 0

这是在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

清风无影 2022-09-13 03:09:13

大可不必这样,既然知道了表名,直接利用原生语句插入值即可,还是太依赖经验和框架了,应该灵活处理问题

一口甜 2022-09-13 03:09:13

这要用到反射原理。
参考:golang使用反射创建对象

也只是曾经 2022-09-13 03:09:13

不需要管表名,直接 new(struct的名字) 就可以了。
使用的时候,字段也是使用struct中的字段,而不是实际表中的字段。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文