Beerus-DB 数据库操作框架开源项目

我要开发同款
匿名用户2021年12月14日
138阅读

技术信息

开源地址
https://gitee.com/mirrors/Beerus-DB
授权协议
MIT

作品详情

Beerus-DB,是Beerus的子项目之一,是一个数据库操作框架,用到了[go-sql-driver/mysql]来做数据库连接与基础操作,在此基础上做了很多扩展,比如:连接池管理,多数据源,事务管理,单表无sql操作,多表以及复杂操作可以自己写sql,sql支持{}占位符,可以用struct作为参数来操作数据库等

文档

https://beeruscc.com/beerusdb

示例单表操作根据条件查询单表数据

coditios:=make([]*etity.Coditio,0)coditios=apped(coditios,etity.GetCoditio("id>?",10))coditios=apped(coditios,etity.GetCoditio("ad(user_ame=?orage>?)","bee",18))coditios=apped(coditios,etity.GetCoditio("orderbycreate_timedesc",etity.NotWhere))resultMap,err:=operatio.GetDBTemplate("Datasourceame").Select("tableame",coditios)根据条件修改单表数据

//Coditiossetcoditios:=make([]*etity.Coditio,0)coditios=apped(coditios,etity.GetCoditio("id=?",1))//Datasettigstobemodifieddata:=ResultStruct{UserName:"TestNoSqlUpdate"}//Executethemodificatiooperatioresult,err:=operatio.GetDBTemplate("Datasourceame").Update("tableame",dbutil.StructToMapIgore(&data,data,true),coditios)根据条件删除单表数据

//Setdeletecoditioscoditios:=make([]*etity.Coditio,0)coditios=apped(coditios,etity.GetCoditio("id=?",2))//Performadeleteoperatio_,err:=operatio.GetDBTemplate("Datasourceame").Delete("tableame",coditios)插入一条数据

data:=ResultStruct{UserName:"TestNoSqlIsert",UserEmail:"xxxxx@163.com",UpdateTime:"2021-12-0913:50:00",}result,err:=operatio.GetDBTemplate("Datasourceame").Isert("tableame",dbutil.StructToMapIgore(&data,data,true))自定义sql

查询

//struct参数res:=ResultStruct{Id:1}//查多条,注:这里需要用到占位符resultMap,err:=operatio.GetDBTemplate("Datasourceame").SelectListByMap("select*fromxt_message_boardwhereid<{id}",dbutil.StructToMap(&res,res))//查一条,注:这里需要用到占位符resultMap,err:=operatio.GetDBTemplate("Datasourceame").SelectOeByMap("select*fromxt_message_boardwhereid<{id}",dbutil.StructToMap(&res,res))

增删改

res:=ResultStruct{Id:1,UserName:"TestUpdateByMap"}//无论是增删改,都是调用ExecByMap函数,将sql和参数传入即可,注:这里需要用到占位符operatio.GetDBTemplate("Datasourceame").ExecByMap("updatext_message_boardsetuser_ame={user_ame}whereid={id}",dbutil.StructToMap(&res,res))分页查询data:=ResultStruct{UserName:"TestNoSqlIsert",UserEmail:"xxxxx@163.com",}//创建分页参数param:=etity.PageParam{CurretPage:1,//第几页PageSize:20,//每页多少条Params:dbutil.StructToMap(&data,data),//查询参数}//执行查询操作result,err:=operatio.GetDBTemplate("Datasourceame").SelectPage("select*fromxt_message_boardwhereuser_ame={user_ame}aduser_email={user_email}",param)事务管理//开启事务id,err:=db.Trasactio()iferr!=il{t.Error("TestUpdateTx:"+err.Error())retur}res:=ResultStruct{Id:1,UserName:"TestUpdateTx"}//注:这里使用的不是GetDBTemplate,ExecByMap,而是GetDBTemplateTx和ExecByTxMap//使用事务和不使用事务,在调用的函数上,区别就是多了个Txss,err:=operatio.GetDBTemplateTx(id,"dbPoolTest").ExecByTxMap("updatext_message_boardsetuser_ame={user_ame}whereid={id}",dbutil.StructToMap(&res,res))iferr!=il{//如果有问题就回滚事务db.Rollback(id)t.Error("TestUpdateTx:"+err.Error())retur}//提交事务db.Commit(id)

想了解更多的话,可以查阅我们的文档哦

功能介绍

Beerus-DB,是 Beerus 的子项目之一,是一个数据库操作框架,用到了[go-sql-driver/mysql]来做数据库连接与基础操作,在此基础上做了很多扩展,比如:连接池管理,多数...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论