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)
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM