Git Product home page Git Product logo

b2db's Introduction

*  * 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's People

Stargazers

xiaohuangniu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.