IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 还在为mysql数据库表手写go struct模型? 干货满满教你根据mysql数据表结构自动生成golang struct模型文件,批量生成model.go文件,单个生成model.go文件 -> 正文阅读

[大数据]还在为mysql数据库表手写go struct模型? 干货满满教你根据mysql数据表结构自动生成golang struct模型文件,批量生成model.go文件,单个生成model.go文件

话不多说直接上代码
测试用表:
在这里插入图片描述

单表生成

简单生成一个表对应的模型文件

//测试将mysql单表生成 go struct model
package main

import (
	"github.com/pulingfu/tblschema"
)

输入命令go run main.go
func main() {
	//简单用法
	simple := tblschema.NewTblToStructHandler()
	simple.
		SetDsn("root:tiger@(127.0.0.1:3306)/pulingfu?charset=utf8mb4&parseTime=True&loc=Local").
		SetTableName("my_user1").

		//默认路径为当前目录
		SetSavePath("./simple/model.go").

		// SetPackageInfo("plf_test_package", "", "").
		GenerateTblStruct()

}

直接运行go run main.go就生成如下表对应的模型文件
在这里插入图片描述

============我是分界线+++++++++++++++++++++++++

还可以设置包名、生成路径、标签、生成结构体名、成员名等如下:

//测试将mysql单表生成 go struct model
package main

import (
	"github.com/pulingfu/tblschema"
)

输入命令go run main.go
func main() {
	///复杂用法
	th := tblschema.NewTblToStructHandler()
	th = th.
		//设置数据库dsn连接地址
		SetDsn("root:tiger@(127.0.0.1:3306)/pulingfu?charset=utf8mb4&parseTime=True&loc=Local").
		//设置生成的model包名
		SetPackageInfo("tbl_my_user", "prefix_", "_suffix").
		//设置要生成哪张数据库表的结构
		SetTableName("my_user").

		//设置结构体字段名 骆驼写法/首字母大写  不设置则默认骆驼写法如 user_name => UserName
		//写法、前缀、后缀
		SetTblStructNameInfo(tblschema.CAMEL_CASE, "a我是_table_name前缀_", "_b我是_table_name后缀").

		//设置行信息  写法、排序方式、前缀、后缀
		SeTblStructColumnNameInfo(tblschema.CAMEL_CASE, "", "a我是_column_name前缀_", "_b我是_column_name后缀").

		//生成结构体标记的orm类型 默认为gorm
		// orm => `orm:"column_name"`
		// gorm => `gorm:"column:column_name"`
		SetStructOrmTag("gorm").

		//设置其他结构体标签,如json,request
		// SetOtherTag("json", "request").
		// SetOtherTag("json").

		//设置生成模型的保存位置
		SetSavePath("./tbl_my_user/model.go").
		GenerateTblStruct()

	///************/
	//继承上面的配置生成另外 的结构,如time类型对应成string
	th.
		//依次为包名、包名前缀、包名后缀
		SetPackageInfo("tbl_my_user_timestring", "prefix_", "_suffix").
		SetOtherTags("").
		SetSavePath("./tbl_my_user_time_string/model.go").

		//设置数据库time类型变为结构体string  默认为time.Time
		SetTimeType(tblschema.TIMETYPE_STRING).

		//设置结构体名 骆驼写法/首字母大写  不设置则默CameCase写法如 tbl_user => TblUser
		SetTblStructNameInfo(tblschema.CAMEL_CASE, "", "").
		//设置字段排序方式FIELD_ORDER_ORDINAL_POSITION 按数据库字段建立顺序 默认字典顺序
		SeTblStructColumnNameInfo(tblschema.CAMEL_CASE, tblschema.FIELD_ORDER_FIELD_NAME, "", "").
		GenerateTblStruct()

}

go run main.go就会生成如下文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

============我是分界线+++++++++++++++++++++++++

批量生成多表

直接上代码

package main

import "github.com/pulingfu/tblschema"

//调用一键生成表结构API自动生成表结构
//输入命令go run main.go
func main() {
	th := tblschema.NewTblToStructHandler()
	//简易
	th.SetDsn("root:tiger@(127.0.0.1:3306)/pulingfu?charset=utf8mb4&parseTime=True&loc=Local").
		GenerateAllTblStruct()

	//复杂
	// th.SetDsn("root:tiger@(127.0.0.1:3306)/pulingfu?charset=utf8mb4&parseTime=True&loc=Local").
	// 	SetStructOrmTag("gorm").
	// 	SeTblStructColumnNameInfo(
	// 		tblschema.CAMEL_CASE, tblschema.
	// 			FIELD_ORDER_FIELD_NAME, "column_prefix_", "_column_suffix",
	// 	).SetTblStructNameInfo(tblschema.CAMEL_CASE, "tbl_prefix_", "_tbl_suffix").
	// 	GenerateAllTblStruct()
}

go run main.go就会生成如下容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

============我是分界线+++++++++++++++++++++++++

自定义批量生成内容

package main

import (
	"fmt"

	"github.com/pulingfu/tblschema"
)

//自定义生成想要的表结构
func main() {
	th := tblschema.NewTblToStructHandler().
		SetDsn("root:tiger@(127.0.0.1:3306)/pulingfu?charset=utf8mb4&parseTime=True&loc=Local").

		// 添加其他标签?比如json
		SetOtherTags("json").
		//设置包名
		SetPackageInfo("all_tbl_model", "", "")

	for _, tname := range th.GetAllTableNames() {
		th.
			//设置
			SetSavePath(fmt.Sprintf("./all_tbl_model/%s.go", tname)).
			SetTableName(tname).
			GenerateTblStruct()
	}

}

执行命令 go run main.go 就会生成如下内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:14:07  更:2021-09-12 13:14:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:11:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码