common
各种常用工具的集合。
基础(basic)
加解密工具(encrypt)
文件系统(filesystem)
传输工具(transfer)
这里使用GORM框架,数据库采用MySQL,包含一些常用的工具,包括数据库连接、分页查询列表等。
GORM-MySQL
可以通过接口,来直接获取GORM的MySQL数据库连接:
func GetGormMySQLConnection(config MySqlConfig) (db *gorm.DB, err error)
这里MySqlConfig
是MySQL的配置信息,格式如下:
Host
:服务器主机地址。
Port
:服务器端口号。
User
:服务器登陆用户。
Password
:调试时数据库密码。
Scheme
:数据库名称。
MaxIdleConnection
:最大闲置连接数。
MaxOpenConnection
:最大打开连接数。
Params
:连接参数。
通用事务处理
使用如下接口,进行GORM事务处理:
func TransactionGORM(db *gorm.DB, f TransactionFuncGORM) (data interface{}, err error)
里面的f
参数是实际事务操作的回调函数,类型是:
type TransactionFuncGORM func(*gorm.DB) (interface{}, error)
复杂查询条件
包括原子级条件项和复合条件项,其中:
- 原子级条件项:只有左值、右值、操作符,拼接成一个原子级查询语句。
- 复合条件项:包括多个子项,子项可以是原子级条件项,也可以是复合条件项,用连接符连接,可以是and或or。
其中QuerySql
接口可以获取生成的查询语句和条件项,Fields
接口可以获取查询条件中的所有字段列表,用于判断是否有字段不符合后台要求。
判断GORM事务
判断一个GORM操作对象是否是事务:
func IsGormTx(db *gorm.DB) error