• go 从表结构生成结构体


    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)
            }
  • 相关阅读:
    aspx页面,中文乱码解决方案
    使用JSP体验微信公众平台开发模式
    使用微信公众平台“编辑模式”的过程记录
    JAVA刷新网站IP访问量的技术探讨
    301. Remove Invalid Parentheses
    Dungeon Game
    刷题关键点总结-动态规划
    刷题关键点总结-单调栈、单调队列
    coin change
    常用vim命令
  • 原文地址:https://www.cnblogs.com/wujf/p/11040386.html
Copyright © 2020-2023  润新知