1 Star 0 Fork 0

wlhet / sqlx

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

简介

用法示例

package main

import (
	"fmt"
	"sqlx"

	_ "github.com/go-sql-driver/mysql"
)

func main() {
    //初始化配置
    kConf := new(sqlx.KConfig)
    //初始化DB的配置
    dbConfig := new(sqlx.DBConfig)
    dbConfig.Driver = "mysql"
    dbConfig.Dsn = "root:123456@tcp(127.0.0.1:3306)/sqlx?charset=utf8&parseTime=true"
    dbConfig.IsMaster = true
    kConf.DBConfigList = []sqlx.DBConfig{*dbConfig}
    sqlx.RegisterDataBase(*kConf)
    
    //原生SQL查询
    sqlx.Select("select * from user where id = ?", 1).ToArray()
    //返回map[string][string] 
    sqlx.Select("select * from user where id = ?", 1).ToMap()
    //返回struct
    type user struct {
        Id int `db:"id;auto"`
        Name string `db:"name"`
    }
    var result []user
    sqlx.Select("select * from user").ToStruct(&result)
    fmt.Println("result:", result)
    
    //链式操作,返回单条数据
    sqlx.Table("user").Where("id", 1).First().ToArray()
    
    //支持指定库操作
    var u user
    sqlx.WithDB("mysql::master").Table("user").Where("id", 1).First().ToStruct(&u)
    
    //批量插入支持map方式和struct方式
    a1 := new(user)
    a1.Name = "张三"
    
    a2 := new(user)
    a2.Name = "李四"
    
    users := []user{*a1, *a2}
    sqlx.Table("user").MultiInsert(users)
}

查询数据


//查询单条数据
//返回[]string
arr, err := sqlx.Table("user").Where("id", 1).First().ToArray()

//返回map[string][string
mp, err := sqlx.Table("user").Where("id", 1).First().ToMap()

type user struct {
    Id int `db:"id"`
    Name string `db:"name"`
}

//返回结构体
var result user
err := sqlx.Table("user").Where("id", 1).First().ToStruct(&result)


//查询多条数据
//返回[][]string
arr, err := sqlx.Table("user").Where("id", 1).Get().ToArray()

//返回[]map[string][string
mp, err := sqlx.Table("user").Where("id", 1).Get().ToMap()

type user struct {
    Id int `db:"id"`
    Name string `db:"name"`
}

//返回结构体
var result []user
err := sqlx.Table("user").Where("id", 1).Get().ToStruct(&result)

插入数据


//通过结构体插入
type user struct {
	Id int `db:"id;auto"`   //tag中包含auto属性的时候,插入时会自动过滤
	Name string `db:"name"`
}

a1 := new(user)
a1.Name = "张三"

//插入单条
sqlx.Table("user").Insert(a1)

//插入多条
a1 := new(user)
a1.Name = "张三"

a2 := new(user)
a2.Name = "李四"
users := []user{*a1, *a2}
sqlx.Table("user").MultiInsert(users)

//通过map方式插入
user := make(map[string]string)
user["name"] = "张三"
sqlx.Table("user").Insert(user)

更新数据


data := make(map[string]interface{})
data["name"] = "李四"

sqlx.Table("user").Where("id", 1).Update(data)

删除数据

sqlx.Table("user").Where("id", 1).Delete()

TODO

  • grammar字符串拼接优化

  • 使用对象池来优化new过多的问题

  • 链式操作支持子查询

空文件

简介

暂无描述 展开 收起
Go
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/wlhet/sqlx.git
git@gitee.com:wlhet/sqlx.git
wlhet
sqlx
sqlx
master

搜索帮助