Go gorose初探之Mysql配置与数据查询

在这之前先介绍几个概念:

什么是gorose?

gorose是一个小巧强悍的golang orm,借鉴自laravel's eloquent的优雅api及链式调用,让数据库操作称为一种享受.

什么是orm?

http://www.ruanyifeng.com/blog/2019/02/orm-tutorial.html  阮一峰的网络日志 

https://blog.csdn.net/u012585964/article/details/52412520 理解ORM和数据持久化

gorose的安装与手册

安装:go get -u github.com/gohouse/gorose

手册:https://github.com/gohouse/gorose

数据库配置

既然要操作数据库,那么首先进行数据库的配置,这里我们操作的是Mysql数据库,所以首先进行Mysql的驱动配置:

_ "github.com/gohouse/gorose/driver/mysql"
// or 
import _ "github.com/go-sql-driver/mysql"
// 单一数据库配置
type DbConfigSingle struct {
	Driver          string // 驱动: mysql/sqlite/oracle/mssql/postgres
	EnableQueryLog  bool   // 是否开启sql日志
	SetMaxOpenConns int    // (连接池)最大打开的连接数,默认值为0表示不限制
	SetMaxIdleConns int    // (连接池)闲置的连接数
	Prefix          string // 表前缀
	Dsn             string // 数据库链接
}

单一数据库的配置参数如上,DbConfigSingle为gorose包中提前定义好的一个结构体类型,包含了数据库的若干个属性。这里我们只配置了Driver和Dsn两个参数,这里注意Dsn的文件格式:"用户名:密码@tcp(IP:端口号)/数据库名称?charset=utf8"

随后通过gorose中的Open方法来打开配置文件:

connection, err := gorose.Open(DbConfig)

Open的源码如下,可以看出返回值为一个指针类型的Connection,里面包含很多方法,比如Newsession(),Table(),Query()等等

我们链接了数据库, 并获取到了链接实例*Connection下面 我们配置表结构, 以便后续使用

我们可以使用struct结构体来指定表名和字段, 同时, 我们也可以string字符串来指定表名

以test_table表为例

 我们可以定义一个结构体来提取Mysql中的数据

type Users struct {
    Name string `orm:"name"`
    Age int     `orm:"age"`
    Uid int      `orm:"id"`
}
//该字段在orm中会被忽略掉,起注释作用

这里我们定义了一个结构体Users以及对应的一个方法TableName(),这里的struct解析后, 会获取到字段 age,uid.

不难看出, 指定了tag的字段会解析对应的orm key 的值, 如果没有指定tag, 则获取字段本身的值

这里的TableName() 则是指定表名(users)用的, 如果没有该方法, 则或获取struct本身的名字Users

用法示例:
var user Users
var users []Users
db.Table(&user).Select()	// 获取一条
db.Table(&users).Limit(10).Select()	// 获取10条

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值