Wego Web Framework | GitHub 开发文档 开发社区
快速入门
Web模块
ORM模块
其他模块

模型定义

模型定义用于将一个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;autoid"`
	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"
}

说明:

自动生成模型

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


go get github.com/haming123/dbreverse

cd path/of/dbreverse
go build

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

cd path/of/dbreverse
./dbreverse -t 表名称