根据数据库自动生成worm模型结构体

23 篇文章 1 订阅
13 篇文章 0 订阅

本文说明如何编写一个worm模型的结构体的定义, 并说明如何使用dbreverse工具自定生成模型结构体。

模型定义

模型定义用于将一个struct映射为数据库中对应的一张表。worm使用名称为"db"的Tag映射数据库字段,"db"后面是字段的名称以及其他的约定的规则,例如对于下面的user表:

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `passwd` varchar(200) DEFAULT NULL,
  `created` datetime DEFAULT NULL,
  `updated` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
);

采用段标签方式定义的实体类如下:

type User struct {
	Id          int64   	`db:"id;autoincr"`
	Name        string  	`db:"name"`
	Age         int64   	`db:"age"`
	Passwd      string  	`db:"passwd"`
	Created     time.Time	`db:"created;n_update"`
}
func (ent *User) TableName() string {
	return "user"
}

说明:

  • autoincr用于说明该字段是自增ID
  • n_update用于说明该字段不可用于update语句中
  • n_insert用于说明该字段不可用于insert语句中

wego/worm的详细文档请访问:github.com/haming123/wego

自动生成模型定义

通常你可以手工编写模型的struct,若您的应用中有大量的模型struct需要定义,您也可以使用自动模型struct自动生成工具,以下介绍模型struct自动生成工具dbreverse的使用步骤。

  • 首先下载dbreverse源码
go get github.com/haming123/dbreverse
  • 然后编译dbreverse
cd path/of/dbreverse
go build
  • 编辑app.conf配置文件
    app.conf是dbreverse的配置文件,采用ini格式:
#数据库驱动名称:mysql/mssql/postgres
db_driver = mysql
#go代码的package名称
pkg_name = model
#create_time字段的名称
create_time = created
#是否采用pool来生成Model对象, true or false
use_model_pool = flase

[db]
db_host = 127.0.0.1
db_port = 3306
db_name = demo
db_user = myuser
db_pwd = userpwd
  • 运行dbreverse来生成模型struct
cd path/of/dbreverse
./dbreverse -t 表名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go lang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值