数据库操作

    1. Query返回的是原生的标准库的结果集对象,需要自行解析;
    2. 在执行数据查询时推荐使用Get*系列查询方法;
    3. Insert/Replace/Save方法中的data参数支持的数据类型为:string/map/slice/struct/*struct,当传递为slice类型时,自动识别为批量操作,此时batch参数有效;
    4. Batch*方法中的list参数类型支持任意的slice类型;
    1. // 获取默认配置的数据库对象(配置名称为"default")
    2. db := g.Database()
    3. // 获取配置分组名称为"user-center"的数据库对象
    4. db := g.Database("user-center")
    5. // 或者 (别名方式, 推荐)
    6. db := g.DB("user-center")
    7. // 使用原生New方法创建数据库对象
    8. db, err := gdb.New()
    9. db, err := gdb.New("user-center")
    10. // 使用原生单例管理方法获取数据库对象单例
    11. db, err := gdb.Instance()
    12. db, err := gdb.Instance("user-center")
    13. // 注意不用的时候不需要使用Close方法关闭数据库连接(并且gdb也没有提供Close方法),

    2. 数据写入

    1. list, err := db.GetAll("select * from user limit 2")
    2. list, err := db.GetAll("select * from user where age > ? and name like ?", g.Slice{18, "%john%"})
    3. list, err := db.GetAll("select * from user where status=?", g.Slice{1})

    4. 数据查询(单条)

    1. r, err := db.Save("user", gdb.Map {
    2. "uid" : 1,
    3. "name" : "john",
    4. })

    6. 批量操作

    1. // db.Update/db.Delete 同理
    2. // UPDATE `user` SET `name`='john' WHERE `uid`=10000
    3. r, err := db.Update("user", gdb.Map {"name": "john"}, "uid=?", 10000)
    4. // UPDATE `user` SET `name`='john' WHERE `uid`=10000
    5. r, err := db.Update("user", "name='john'", "uid=10000")
    6. r, err := db.Update("user", "name=?", "uid=?", "john", 10000)