sqlgen

module
v0.0.0-...-0a38ad5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2020 License: Apache-2.0

README

go-sqlgin

简介

Go语言生成数据模型SQL基本操作接口

支持范围校验、图片处理、时间处理

使用方法
  1. go get gitee.com/go-utils/sqlgen

  2. 将gen整个目录拷贝到任何地方,ssh命令进入该目录

  3. 修改gen.go中main方法参数

    func main() {
    	err := generate(
    		&TblUser{},
    		"Sql",
    		"Uid",
    		"AddUriRoot",
    		"DeleteUriRoot",
    	)
    	if err != nil {
    		fmt.Println(err.Error())
    	}
    }
    
    说明:
    1. TblUser替换为待生成sql的数据模型,不能空,注意:此处要传指针
    2. common.Sql为全局的MySql连接,类型应该是:*sql.DB(库:database/sql),不能空
    3. Uid为主键名,使用大驼峰命名;可空,默认为Id
    4. AddUriRoot,从数据库读出数据时,img标签字段会作为实参调用,可空。
    5. DeleteUriRoot,写入数据库前,img标签字段会作为实参调用,可空
    6. 4、5都是一个形参和返回都是string的方法,如:AddFun(s string)string
    7. 如果4、5未定义,tbl标签有img时,将不生成图片处理代码
  4. go run gen.go

  5. 控制台会打印生成数据库表的SQL,修改下可用作建表语句

  6. 生成的代码在output目录下

第一个参数说明:&TblUser{}

如果TblUser有实现ToDB接口,则数据写入数据库前,会自动调用该方法,便于对数据做一些入库前的处理

如果TblUser有实现FromDB接口,则数据从数据库读出后,会自动调用该方法

以下两种写法都支持

func (m TblUser) FromDB() {
	//方法一
}

func (m TblUser) ToDB() {
	//方法二
}

func (m *TblUser) FromDB() {
	//方法三
}

func (m *TblUser) ToDB() {
	//方法四
}

如果第一个参数不传指针,则方法三和方法四将无法识别

Tbl Tag介绍
type TblUser struct {
   Id         int64
   LastIp     string
   NickName   string    `tbl:"len:100"`
   Avatar     string    `tbl:"img len:100"`
   Lang       string    `tbl:"bt:[0:120]"`
   CreateTime time.Time `tbl:"time"`
   UpdateTime time.Time `tbl:"time"`
}
tbl支持的标签有:
  1. img

    图片地址入库、出库前处理;支持[]string;注意:[]*string这种是不认的

  2. len:20

    字符最大长度为20,如果是非结构性字段,则比较序列化后的字符长度,兼容xorm的varchar tag

  3. bt:(5:10]

    数字范围校验,支持以下情形: (5:10)、(5:10]、[5:10)、[5:10]、[10:10]

  4. time

    时间,为DateTime类型

  5. updated

    时间,更新的时候会自动取当前时间

  6. created

    时间,创建的时候会自动设置当前时间

字段说明:

字段支持Array、Slice、Struct,读写会自动转换为json字符串;

此类数据,尽量要设置len标签,否则一旦超出范围,则无法正常读出

不支持指针

Directories

Path Synopsis
gen

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL