• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go从表结构生成结构体

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
package main

import (
    "fmt"
    "github.com/gohouse/converter"
)


func main() {
    // 初始化
    t2t := converter.NewTable2Struct()
    // 个性化配置
    t2t.Config(&converter.T2tConfig{
        // 如果字段首字母本来就是大写, 就不添加tag, 默认false添加, true不添加
        RmTagIfUcFirsted: false,
        // tag的字段名字是否转换为小写, 如果本身有大写字母的话, 默认false不转
        TagToLower: false,
        // 字段首字母大写的同时, 是否要把其他字母转换为小写,默认false不转换
        UcFirstOnly: false,
        //// 每个struct放入单独的文件,默认false,放入同一个文件(暂未提供)
        //SeperatFile: false,
    })
    // 开始迁移转换
    err := t2t.
        // 指定某个表,如果不指定,则默认全部表都迁移
        Table("people").
        // 表前缀
        //Prefix("prefix_").
        // 是否添加json tag
        EnableJsonTag(true).
        // 生成struct的包名(默认为空的话, 则取名为: package model)
        PackageName("model").
        // tag字段的key值,默认是orm
        TagKey("orm").
        // 是否添加结构体方法获取表名
        RealNameMethod("TableName").
        // 生成的结构体保存路径,默认保存在当前目录
        SavePath("d:/model.go").
        // 数据库dsn,这里可以使用 t2t.DB() 代替,参数为 *sql.DB 对象
        Dsn("root:root@tcp(localhost:3306)/test?charset=utf8").
        // 执行
        Run()

    fmt.Println(err)

}

 改为支持beego,要修改一下table2Struct.go文件的295行和299行,添加column()

        if t.enableJsonTag {
            //col.Json = fmt.Sprintf("`json:\"%s\" %s:\"%s\"`", col.Json, t.config.TagKey, col.Json)
            //col.Tag = fmt.Sprintf("`%s:\"%s\" json:\"%s\"`", t.tagKey, col.Tag, col.Tag)
            col.Tag = fmt.Sprintf("`%s:column(\"%s\") json:\"%s\"`", t.tagKey, col.Tag, col.Tag)
        } else {
            //col.Tag = fmt.Sprintf("`%s:\"%s\"`", t.tagKey, col.Tag)
            col.Tag = fmt.Sprintf("`%s:column(\"%s\")`", t.tagKey, col.Tag)
        }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
谷歌身份验证 asp.net core和go的实现 - dz45693发布时间:2022-07-10
下一篇:
Go语言将秒转换为具体的时间发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap