日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

gorm存指针数据_gormt: gormt 是一个数据库映射工具,可以将 mysql 数据库自动生成 golang sturct 结构...

發布時間:2025/3/19 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gorm存指针数据_gormt: gormt 是一个数据库映射工具,可以将 mysql 数据库自动生成 golang sturct 结构... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql數據庫轉 struct 工具,可以將mysql數據庫自動生成golang sturct結構,帶大駝峰命名規則。帶json標簽

交互界面模式

./gormt -g=true

命令行模式

./gormt -g=false

安裝

go get -u -v github.com/xxjwxc/gormt@master

1. 通過當前目錄 config.yml 文件配置默認配置項

注意:最新的配置請參考 MyIni.go, 或使用命令行工具默認生成的。

base:

is_dev: false

out_dir: ./model # 輸出目錄

url_tag: json # web url tag(json,db(https://github.com/google/go-querystring))

language: 中 文 # 語言(English,中 文)

db_tag: gorm # 數據庫標簽(gorm,db)

simple: false # 簡單輸出(默認gorm標簽不輸出)

is_out_sql: false # 是否輸出 sql 原信息

is_out_func: true # 是否輸出 快捷函數

is_foreign_key: true # 是否導出外鍵關聯

is_gui: false # 是否ui模式顯示

is_table_name: false # 是否直接生成表名,列名

is_null_to_point: false # 數據庫默認 'DEFAULT NULL' 時設置結構為指針類型

is_web_tag: false

is_web_tag_pk_hidden: false

db_info:

host: 127.0.0.1

port: 3306

username: root

password: qwer

database: oauth_db

type: 0 # 數據庫類型:0:mysql , 1:sqlite , 2:mssql

2. 可以使用命令行工具更新配置項

./gormt -H=127.0.0.1 -d=oauth_db -p=qwer -u=root --port=3306

命令行工具默認會生成config.yml, 具體位置為gormt 可執行文件所在目錄。

可以通過 which gormt 查找所在目錄。

3. 查看幫助

./gormt --help

or

./gormt -h

-------------------------------------------------------

base on gorm tools for mysql database to golang struct

Usage:

main [flags]

Flags:

-d, --database string 數據庫名

-f, --foreign 是否導出外鍵關聯

-F, --fun 是否導出函數

-g, --gui 是否ui顯示模式

-h, --help help for main

-H, --host string 數據庫地址.(注意-H為大寫)

-o, --outdir string 輸出目錄

-p, --password string 密碼.

--port int 端口號 (default 3306)

-s, --singular 是否禁用表名復數

-l, --url string url標簽(json,url)

-u, --user string 用戶名.

4. 支持gorm 相關屬性

數據庫表,列字段注釋支持

json tag json標簽輸出

PRIMARY_KEY將列指定為主鍵

UNIQUE將列指定為唯一

NOT NULL將列指定為非 NULL

INDEX創建具有或不帶名稱的索引, 如果多個索引同名則創建復合索引

UNIQUE_INDEX和 INDEX 類似,只不過創建的是唯一索引

支持函數導出(包括:外鍵,關聯體,索引關...)簡單函數導出示例>>>

支持默認值default

您可以在這里豐富數據映射類型 def 。

5. 示例展示

sql:

CREATE TABLE `user_account_tbl` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`account` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

`password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

`account_type` int(11) NOT NULL DEFAULT '0' COMMENT '帳號類型:0手機號,1郵件',

`app_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'authbucket_oauth2_client表的id',

`user_info_tbl_id` int(11) NOT NULL,

`reg_time` datetime DEFAULT NULL,

`reg_ip` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

`bundle_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

`describ` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,

PRIMARY KEY (`id`) USING BTREE,

UNIQUE KEY `account` (`account`) USING BTREE,

KEY `user_info_id` (`user_info_tbl_id`) USING BTREE,

CONSTRAINT `user_account_tbl_ibfk_1` FOREIGN KEY (`user_info_tbl_id`) REFERENCES `user_info_tbl` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT

) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='用戶賬號'

--->導出結果

// UserAccountTbl 用戶賬號

type UserAccountTbl struct {

ID int `gorm:"primary_key"`

Account string `gorm:"unique"`

Password string

AccountType int // 帳號類型:0手機號,1郵件

AppKey string // authbucket_oauth2_client表的id

UserInfoTblID int `gorm:"index"`

UserInfoTbl UserInfoTbl `gorm:"association_foreignkey:user_info_tbl_id;foreignkey:id"` // 用戶信息

RegTime time.Time

RegIP string

BundleID string

Describ string

}

6. 支持函數導出(導出函數只是 gorm 的輔助類函數,完全兼調用 gorm)

// FetchByPrimaryKey primay or index 獲取唯一內容

func (obj *_UserAccountTblMgr) FetchByPrimaryKey(ID int) (result UserAccountTbl, err error) {

err = obj.DB.Table(obj.GetTableName()).Where("id = ?", ID).Find(&result).Error

if err == nil && obj.isRelated {

{

var info UserInfoTbl // 用戶信息

err = obj.DB.Table("user_info_tbl").Where("id = ?", result.UserInfoTblID).Find(&info).Error

if err != nil {

return

}

result.UserInfoTbl = info

}

}

return

}

7. 構建

make windows

make linux

make mac

or

go generate

說明:windows 不支持中文默認方式。ASCALL 模式

切換編碼方式

CHCP 65001

表注釋 tag

給列添加注釋以[@gormt default:'test']開頭即可

比如[@gormt default:'test';->;

8. 下一步計劃

更新,刪除功能函數添加

優化

9. 提供一個windows 可視化工具

點贊時間線

總結

以上是生活随笔為你收集整理的gorm存指针数据_gormt: gormt 是一个数据库映射工具,可以将 mysql 数据库自动生成 golang sturct 结构...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。