zoukankan      html  css  js  c++  java
  • 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)
            }
  • 相关阅读:
    [poj解题]1017
    [算法] aov图拓扑算法
    【supervisord】部署单进程服务的利器
    【python】一个备份把文件备份到邮箱的python实现
    【GO】关于GO的浅显总结
    iOS开发快捷键
    iOS开发笔记
    VS2012智能提示无效解决方案
    国内几个WindowPhone广告平台
    纪念自己的第四个App:秘密Secret
  • 原文地址:https://www.cnblogs.com/wujf/p/11040386.html
Copyright © 2011-2022 走看看