当前位置: 首页 > news >正文

gorm使用gen自动生成模型和查询文件

项目使用的gin,整合的gorm,可以利用gen工具快速生成模型和查询文件

package databaseimport ("fmt""sync""time""github.com/spf13/viper""gorm.io/driver/mysql""gorm.io/gen""gorm.io/gorm"
)var (instance *gorm.DBonce     sync.Once
)func Instance() *gorm.DB {once.Do(func() {var err errordsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local",viper.GetString("database.user"),viper.GetString("database.pass"),viper.GetString("database.host"),viper.GetInt("database.port"),viper.GetString("database.name"))instance, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})if err != nil {panic("数据库连接失败")}})if viper.GetBool("database.debug") {instance = instance.Debug()}generator := gen.NewGenerator(gen.Config{OutPath: "./app/dao",Mode: gen.WithDefaultQuery | gen.WithQueryInterface,})generator.UseDB(instance)// 非常重要,不加不生成文件!generator.ApplyBasic(generator.GenerateAllTable()...)generator.Execute()db, _ := instance.DB()db.SetMaxIdleConns(10)db.SetMaxOpenConns(100)db.SetConnMaxLifetime(time.Hour)db.SetConnMaxIdleTime(30 * time.Minute)return instance
}

需要注意以下几点:

  • 如果你想定义model目录的路径,目前只支持绝对路径(如写成./app/models这样的相对路径是不行的)或者通过设置OutPathModelPkgPath,可以实现自定义模型路径
  • model生成位置:取OutPath路径中的目录(如OutPath是./app/dao,则目录是./app),再拼接上ModelPkgPath(如不设置ModelPkgPath,默认就叫model),拼接后最终model会生成在./app/model
  • generator.ApplyBasic(generator.GenerateAllTable()...)必须有这句,否则不生成任何modelquery文件
http://www.jsqmd.com/news/349879/

相关文章:

  • 2026年,“配置工程师“终于死绝了
  • 2026年半导体切割机制造公司品质评价排名,哪家公司更靠谱 - 工业品牌热点
  • 朔州市英语雅思培训辅导机构推荐;2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 企业AI获客服务企业怎么选择,鲸荣科技有何亮点 - mypinpai
  • How to Share A Folder in Ubuntu 23.10 Updated [Fix ‘Error 255’ issue]
  • 以浪为马:在不确定时代下,HeyGen 的组织哲学与技术人的生存法则
  • 荣耀WIN系列双旗舰登场:风扇直吹芯片,满帧温控表现抢眼
  • 详细介绍:单元测试(JUnit、Mockito、PowerMock )
  • 作为开发,该如何给产品提有效建议
  • 说说长沙名匠装饰公司怎么样,年度优质装修企业排名解读 - 工业设备
  • 2026最新版!京东全品类/家电/大额优惠券领取方法与隐藏入口汇总 - 华Sir1
  • 定时任务选型:Quartz、XXL-Job、@Scheduled 对比与避坑指南
  • UE5 多线程(进阶):
  • 计算机毕业设计之基于JavaWeb的心聘求职平台
  • 微算法科技(NASDAQ :MLGO)融合量子神经网络:开启纠错策略智能优化新范式,重塑量子计算可靠性边界
  • 69.有效的括号
  • 朔州市英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 关键词:应变测量,应变片,惠斯通电桥,全桥,半桥,四分之一桥,应变测量信号调理
  • 能耗管理平台和能源管理平台有什么区别?哪家好用?
  • javascript之双重循环打印九九乘法表
  • 机器学习中的 P 值
  • 朔州市英语雅思培训辅导机构推荐、2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 聊聊好用的高低温试验箱,步入式高低温试验箱供应商推荐 - 工业推荐榜
  • 机器学习中的熵
  • 2026年全国外贸出口级纯可可脂巧克力制品哪家做得好?核心能力及场景适配解析 - 深度智识库
  • 2026年AI模型“基因偏见”评估框架:软件测试从业者实战指南
  • 全球厨房秤品牌推荐,大秦制衡电子秤质量怎样? - myqiye
  • 2026年冷热冲击试验箱靠谱的供应商推荐,环保型产品口碑排名 - 工业品网
  • 高性能CNC网关推荐,哪家好用?
  • 2026年广州内外涂塑钢管口碑好的制造商排名,专业之选 - 工业品牌热点