XSQLBuilder

package
v1.2.8 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2021 License: MIT Imports: 10 Imported by: 0

README

XSQLBuilder Starter

基于 https://github.com/didi/gendry

didi/gendry Documentation

Documentation https://github.com/didi/gendry/blob/master/translation/zhcn/README.md

XSQLBuilder Starter Usage
goinfras.RegisterStarter(XSQLBuilder.NewStarter())

XSQLBuilder Config Setting
DbHost                  string // 主机地址
DbPort                  int64  // 主机端口
DbUser                  string // 用户名
DbPasswd                string // 密码
DbName                  string // 数据库名
ConnMaxLifetime         int64  // 每个连接最长生命周期,单位秒
MaxIdleConns            int64  // 连接池最大闲置连接数
MaxOpenConns            int64  // 连接池最大连接数
ChartSet                string // 传输字符编码
AllowCleartextPasswords bool   // 开发环境中设置允许明文密码通信
InterpolateParams       bool   // 设置允许占位符参数
Timeout                 int64  // 连接请求的超时时间,单位秒
ReadTimeout             int64  // 读超时时间,单位秒
ParseTime               bool   // 将数据库的datetime时间格式转换为go time包数据类型
PING                    bool   // 连接时PING测试
XSQLBuilder Usage

1、定义UserSchema

// 新增
lastedId, err := XSQLBuilder.XCommon().Insert("user", []map[string]interface{}{
    {"name": "aaaa", "age": 18, "gender": 1}, {"name": "bbbb", "age": 20, "gender": 0},
})
So(err, ShouldBeNil)
Println("Lasted Insert Id:", lastedId)

// 获取数量
count, err := XSQLBuilder.XCommon().GetCount("user", nil)
So(err, ShouldBeNil)
Println("User Count:", count)

// 查询数据到Struct
type UserSchema struct {
	Id     int    `ddb:"id"`
	Name   string `ddb:"name"`
	Age    int    `ddb:"age"`
	Gender int    `ddb:"gender"`
}
rs := UserSchema{}
err = XSQLBuilder.XCommon().GetOne("user", map[string]interface{}{"name": "joker"}, nil, &rs)
So(err, ShouldBeNil)
Println("GetOne:", rs)

// 查询多个
rsList := make([]interface{}, 0)
XSQLBuilder.XCommon().GetMulti("user", map[string]interface{}{"name": "aaaa"}, nil, rsList)
So(err, ShouldBeNil)
Println("GetMulti:", rsList)

// 更新
update, err := XSQLBuilder.XCommon().Update("user", map[string]interface{}{"age": 18}, map[string]interface{}{"age": 28})
So(err, ShouldBeNil)
Println("Update Lasted Id:", update)

// 删除
deleteId, err := XSQLBuilder.XCommon().Delete("user", map[string]interface{}{"name": "ken"})
So(err, ShouldBeNil)
Println("Delete Id:", deleteId)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateDefaultDB

func CreateDefaultDB(config *Config) error

创建一个默认配置的Manager

func NewDB

func NewDB(config *Config) (db *sql.DB, err error)

func NewStarter

func NewStarter() *starter

func XDB

func XDB() *sql.DB

func XFDB

func XFDB(f func(c *sql.DB) error) error

资源组件闭包执行

Types

type CommonDao

type CommonDao struct {
	// contains filtered or unexported fields
}

通用Mysql数据访问操作

func XCommon

func XCommon() *CommonDao

sqlbuilder通用操作实例

func (*CommonDao) Delete

func (m *CommonDao) Delete(tableName string, where map[string]interface{}) (int64, error)

func (*CommonDao) GetCount

func (m *CommonDao) GetCount(tableName string, where map[string]interface{}) (int64, error)

func (*CommonDao) GetMulti

func (m *CommonDao) GetMulti(tableName string, where map[string]interface{}, selectField []string, results interface{}) error

根据条件获取多条数据 @param tableName string 查询的表名 @param where map[string]interface{} 查询条件 @param selectField []string 查询选择返回的字段 @param results interface{} 带表结构存储结果的指针数组,接收返回的数据,接收results应与table schema struct相对应

func (*CommonDao) GetOne

func (m *CommonDao) GetOne(tableName string, where map[string]interface{}, selectField []string, result interface{}) error

以下提供通用的几个curd方法,具体构建方式可查看本目录的README

根据条件获取单条数据 @param tableName string 查询的表名 @param where map[string]interface{} 查询条件 @param selectField []string 查询选择返回的字段 @param result DaoMysqlSchema 带表结构存储结果的指针,接收返回的数据,实现DaoMysqlSchema接口

func (*CommonDao) Insert

func (m *CommonDao) Insert(tableName string, data []map[string]interface{}) (int64, error)

插入数据 @param tableName string 表名 @param data []map[string]interface{} 插入数据

@return LastInsertId int64 返回最新的插入id

func (*CommonDao) InsertIgnore

func (m *CommonDao) InsertIgnore(tableName string, data []map[string]interface{}) (int64, error)

插入数据,已存在则忽略 @param tableName string 表名 @param data []map[string]interface{} 插入数据

@return LastInsertId int64 返回最新的插入id

func (*CommonDao) InsertReplace

func (m *CommonDao) InsertReplace(tableName string, data []map[string]interface{}) (int64, error)

插入数据,已存在则替换 @param tableName string 表名 @param data []map[string]interface{} 插入数据

@return LastInsertId int64 返回最新的插入id

func (*CommonDao) NewTx

func (m *CommonDao) NewTx(ctx context.Context, options *sql.TxOptions) (*MysqlTx, error)

创建一个事务

func (*CommonDao) Update

func (m *CommonDao) Update(tableName string, where, data map[string]interface{}) (int64, error)

更新数据 @param tableName string 表名 @param where map[string]interface{} 查询条件 @param data []map[string]interface{} 更新数据

@return RowsAffected int64 更新影响的行数

type Config

type Config struct {
	DbHost                  string // 主机地址
	DbPort                  int64  // 主机端口
	DbUser                  string // 用户名
	DbPasswd                string // 密码
	DbName                  string // 数据库名
	ConnMaxLifetime         int64  // 每个连接最长生命周期,单位秒
	MaxIdleConns            int64  // 连接池最大闲置连接数
	MaxOpenConns            int64  // 连接池最大连接数
	ChartSet                string // 传输字符编码
	AllowCleartextPasswords bool   // 开发环境中设置允许明文密码通信
	InterpolateParams       bool   // 设置允许占位符参数
	Timeout                 int64  // 连接请求的超时时间,单位秒
	ReadTimeout             int64  // 读超时时间,单位秒
	ParseTime               bool   // 将数据库的datetime时间格式转换为go time包数据类型
	PING                    bool   // 连接时PING测试
}

MysqlDB 配置

func DefaultConfig

func DefaultConfig() *Config

type MysqlTx

type MysqlTx struct {
	// contains filtered or unexported fields
}

func (*MysqlTx) Delete

func (mtx *MysqlTx) Delete(tableName string, where map[string]interface{}) (int64, error)

func (*MysqlTx) GetMulti

func (mtx *MysqlTx) GetMulti(tableName string, where map[string]interface{}, selectField []string, results []interface{}) error

根据条件获取多条数据 @param tableName string 查询的表名 @param where map[string]interface{} 查询条件 @param selectField []string 查询选择返回的字段 @param results []DaoMysqlSchema 带表结构存储结果的指针数组,接收返回的数据,实现DaoMysqlSchema接口

func (*MysqlTx) GetOne

func (mtx *MysqlTx) GetOne(tableName string, where map[string]interface{}, selectField []string, result interface{}) error

以下提供通用的几个基于事务的curd方法,具体构建方式可查看本目录的README

根据条件获取单条数据 @param tableName string 查询的表名 @param where map[string]interface{} 查询条件 @param selectField []string 查询选择返回的字段 @param result DaoMysqlSchema 带表结构存储结果的指针,接收返回的数据,实现DaoMysqlSchema接口

func (*MysqlTx) Insert

func (mtx *MysqlTx) Insert(tableName string, data []map[string]interface{}) (int64, error)

插入数据 @param tableName string 表名 @param data []map[string]interface{} 插入数据

@return LastInsertId int64 返回最新的插入id

func (*MysqlTx) InsertIgnore

func (mtx *MysqlTx) InsertIgnore(tableName string, data []map[string]interface{}) (int64, error)

插入数据,已存在则忽略 @param tableName string 表名 @param data []map[string]interface{} 插入数据

@return LastInsertId int64 返回最新的插入id

func (*MysqlTx) InsertReplace

func (mtx *MysqlTx) InsertReplace(tableName string, data []map[string]interface{}) (int64, error)

插入数据,已存在则替换 @param tableName string 表名 @param data []map[string]interface{} 插入数据

@return LastInsertId int64 返回最新的插入id

func (*MysqlTx) Update

func (mtx *MysqlTx) Update(tableName string, where, data map[string]interface{}) (int64, error)

更新数据 @param tableName string 表名 @param where map[string]interface{} 查询条件 @param data []map[string]interface{} 更新数据

@return RowsAffected int64 更新影响的行数

Jump to

Keyboard shortcuts

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