b2db的使用操作

作者: 吃猫的鱼0 | 来源:发表于2018-01-04 10:53 被阅读3次

   b2db是一个dao层的框架,现在网络上有好多golang Dao的框架,比如beegoo.rm、beedb;在使用过程中感觉beegoo.rm太大了,而beedb不支持事物以及一对一,多对多查询。刚开始的的时候无聊更改了beedb的代码,增接了事物这个功能,后来有时间了就重新写了b2db。下面来说b2db的使用吧:

   首先贴上下载地址

   或者:go get https://github.com/JeonYang/b2db.git

1. 创建DB连接

  • 这个以前有总结可以看一下

2. 创建b2DB对象

  • b2DB = b2db.New(db)

做完上面两步就可以使用b2DB了

增加

   按照对象添加

var student Student
//student.SId=42
student.Name = time.Now().String()[0:10]
student.PassWord = "Test Add Departname"
student.ClassId = "1"
err:=orm.Save(&student)

   按照map添加

add := make(map[string]interface{})
add["name"] = "cloud develop"
add["password"] = "2012-12-02"
add["classId"] = "2"
in,err:=orm.SetTable("student").Insert(add)

   多个添加

rows := make([]map[string]interface{}, 5)
for i := 0; i < 5; i++ {
    add := make(map[string]interface{})
    name := "person" + strconv.Itoa(i)
    add["username"] = name
    add["departname"] = "IT"
    add["created"] = time.Now().String()[0:10]
    rows[i] = add
}
in,err:=orm.SetTable("userinfo").InsertBatch(rows)

删除

   删除单个对象

saveone := selectone(orm)
log.Println(saveone)
in,err:=orm.Delete(&saveone)

   按照一定条件删除

orm.SetTable("userinfo").Where("uid=?", 30).DeleteRow()

   同时删除多个对象

var allStudent []Student
in,err:=orm.DeleteAll(&allStudent)

修改

   按照对象修改

var student Student
//student.SId=42
student.Name = time.Now().String()[0:10]
student.PassWord = "Test Add Departname"
student.ClassId = "1"
err:=orm.Save(&student)

   按照一定条件删除

t := make(map[string]interface{})
t["username"] = "yangp"
in,_:=orm.SetTable("userinfo").SetPK("uid").Where(2).Update(t)

查询

   按照对象查找

var student Student
student.SId=55
err:=orm.FindOne(&student)

   一次查找多个

var allStudent []Student
orm.Limit(2).Where("Id>30", ).FindAll(&allStudent)

   按照一定条件查找

SetTable("student").
SetPK("Id").
Where("Id > ?", "10").
Select("student.Id as SId, student.name, student.password, student.classId").
FindMap()

   一对一查找

var student Student
student.SId=36
orm.FindOneToOne(&student)

   一对多查找

var class Class
class.Id=1
orm.FindOneToMore(&class)

   多对多查找

var class []Class
orm.Where("class.Id>0").FindMoreToMore(&class)

   GroupBy查找

b, _ := orm.SetTable("student").GroupBy("name").Having("name='123'").FindMap()

   Join查找

a, _ := orm.SetTable("userinfo").Join("LEFT", "userdeatail", "userinfo.uid=userdeatail.uid").Where("userinfo.uid=?", 10).Select("userinfo.uid,userinfo.username,userdeatail.profile").FindMap()

事物

   开启事物

orm.Begin()

   提交事物

orm.Commit()

相关文章

  • b2db的使用操作

    b2db是一个dao层的框架,现在网络上有好多golang Dao的框架,比如beegoo.rm、beedb;在...

  • Java遗漏知识点

    使用环境: 操作少量的数据使用 String; 单线程操作大量数据使用 StringBuilder; 多线程操作大...

  • 面向对象OOP(Ts)

    操作对象例如 操作浏览器要使用window对象 操作网页要使用document对象 操作控制台要使用console...

  • 2020-07-27 Android中实现延时执行操作的几种方法

    使用线程的休眠实现延时操作 使用TimerTask实现延时操作 使用Handler的postDelayed方法实现...

  • Mac 终端命令小结

    命令名功能描述使用举例 文件操作(命令名功能描述使用举例) 选择操作 安全操作 编程操作 进程操作 时间操作 网络...

  • docker学习2,docker基本命令

    操作docker容器,和操作linux差不多,都是使用命令行操作。不同的是,操作docker需要使用docker的...

  • 属性操作

    特殊的属性操作,如class,for等 操作class: 操作class时不能直接使用class要使用classN...

  • JQuery学习笔记(一)

    学习目标 掌握使用jQuery操作样式 掌握使用jQuery操作DOM 能使用jQuery绑定事件 能使用jQue...

  • JAVA编程思想--第3章 操作符

    第3章 操作符 在最底层,java的数据是通过使用操作符来操作的。 3.2 使用Java操作符 操作符作用于操作数...

  • GIT和Github

    #Git的初识 ##Git 的使用 Git 使用初尝试 新建项目来操作 克隆已有项目来操作 Git 的使用 by ...

网友评论

    本文标题:b2db的使用操作

    本文链接:https://www.haomeiwen.com/subject/gktrnxtx.html