golang mysql写入优化_本人用golang写的mysql orm 欢迎使用提交bug 优化及更新

本文介绍了基于go-sql-driver开发的轻量级ORM库——gomysql,用于简化数据库操作。通过配置文件连接MySQL,提供查询、添加、修改、删除等操作,并支持JOIN查询和自定义SQL。文章还提及了库的持续优化和更新。
摘要由CSDN通过智能技术生成

gomysqlhtml

d030403becd79888e969867ead6e7271.png

介绍

gomysql是基于go-sql-driver基础上开发的orm,这是一个轻量级的库。它会使数据库的增删改查变得很是容易。固然也是测试开发版,会一直优化和更新!请时刻关注咱们git

安装

go get github.com/go-sql-driver/mysql

go get github.com/widuu/goini

go get github.com/widuu/gomysql

依赖的包

使用教程

设置配置文件数据库

[database]

username = mysql username

password = mysql password

hostname = mysql host

charset = mysql charset

database = database name

port = mysql port

初始化配置测试

c, _ := gomysql.SetConfig("./conf/conf.ini") //根据配置文件,链接数据库

查询数据优化

t := c.SetTable("user") //设置要处理的表名

data := t.FindOne() //查询表的一条数据,返回map[int]map[string]string格式

gomysql.Print(data) //打印数据信息,返回以下截图的数据格式

f31fb50c607fb0488950f2a871090c84.png

data := t.Fileds("id", "password", "username").Where("id =12").FindOne() //Fileds 查询字段,Where where条件FindOne()查询一条

//limit sql中的limit OrderBy sql中查询的OrderBy

data = c.SetTable("user").Fileds("id", "password", "username").Where("id>1").Limit(1, 5).OrderBy("id Desc").FindAll()

data = t.FindAll() //查询全部数据,其中OrderBy() Limit() Where() Fileds()等设置条件

gomysql.Print(data) //查询的数据均可以用Print()方法友好打印出来信息

添加数据网站

var value = make(map[string]interface{}) //设置map存储数据,map[key]value

value["password"] = "mima3"

value["username"] = "xiaowei"

value["id"] = 10

t := c.SetTable("user") //设置增长的数据表

t.SetPk("id") //设置主键自增的字段名称

i,err := t.Insert(value) // 插入数据,返回增长个数和错误信息。返回最后增加的id和错误信息

修改数据ui

var value = make(map[string]interface{})

value["password"] = "mima3"

value["username"] = "xiaowei"

n, err := c.SetTable("user").Where("id =5").Update(value) //设置表,条件和修改的内容,返回影响条数和错误信息

删除数据

n, err := c.SetTable("user").Delete("id = 6") //设置删除的表和数据,返回影响条数和错误信息

关联操做

INNER JOIN

t := c.SetTable("user")

//下面至关于sql语句,打印出是Select user.id,data.keywords,user.username,user.password from user INNER JOIN data ON user.id = data.id

data := t.Fileds("user.id", "data.keywords", "user.username", "user.password").Join("data", "user.id = data.id").FindAll()

fmt.Println(data)

LEFT JOIN

t.Fileds("user.id", "data.keywords", "user.username", "user.password").LeftJoin("data", "user.id = data.id").FindAll()

fmt.Println(data)

RIGHT JOIN

t.Fileds("user.id", "data.keywords", "user.username", "user.password").RightJoin("data", "user.id = data.id").FindAll()

fmt.Println(data)

FULL JOIN

data := t.Fileds("user.id", "data.keywords", "user.username", "user.password").RightJoin("data", "user.id = data.id").FindAll()

fmt.Println(data)

自定义sql语句

// Query()方法 是自定义sql语句的

insert类型的数据

n := t.Query("INSERT INTO user (`username`,`password`) VALUES ('xiaoweitest','xiaowei')") //返回最后增加的id

update|delete

//update

n := c.Query("update user set username='ceshishenma' where id =17 ")

fmt.Println(n) //1 返回受影响行数

//delete

n := c.Query("delete from user where id=16 ")

fmt.Println(n) //1 返回受影响行数

select

data := c.Query("select username,password from user")

fmt.Println(data) //返回map[int]map[string]string 结构的全部数据

关闭数据库

c.DbClose() //关闭数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值