丝滑操作 mysql redis 的利器
Contents
痛点
- database/sql 标准库提供了 mysql 的连接池
难用
- redigo 第三方库提供了 redis 的连接池
难用
- golang-db 封装了上述两个库
特别适合脚本开发场景
golang 访问 mysql、redis 是最为常见的场景,如果要写个脚本做些简单的事情,标准库和三方库都很复杂,容易出错。
本人从一线开发中的经验出发,简单封装了 mysql、redis 的连接池库而来的 golang-db
,特别适合脚本开发场景。
让 golang 读写 mysql redis 如动态语言一样丝滑,也希望帮助到有同样困扰的 gopher。
怎么使用 mysql 丝滑利器
- 安装库
|
|
Tips: go-sql-driver Version >= 1.4
- 初始化
|
|
- 查询
- Get - 单个查询
- 返回结果是一个
map[string]interface{}
字典类型 - map 的 key 是字段名,value 是接口
- 字段名与数据库表一一对应,无需另外单独定义一个 struct
- 返回结果是一个
- Query - 批量查询
- 返回结果是一个
[]map[string]interface{}
slice 类型 - map 的 key 是字段名,value 是接口
- 字段名与数据库表一一对应,无需另外单独定义一个 struct
- 不用繁琐的遍历 rows
- 不用关闭 rows 等
- 返回结果是一个
- Get - 单个查询
Tips: 使用字段时需要按照数据库定义断言一次
|
|
- 更改
- Insert - 快捷插入
- 返回插入的记录 ID
- Update - 快捷更新
- 返回更新的记录数
- Delete - 快捷删除
- 返回删除的记录数
- Exec - 通用方法
- 返回通用的操作结果
- Insert - 快捷插入
|
|
- 事务
|
|
Tips: 事务同样支持 Update/Insert/Delete 等快捷方法
- 访问标准库的 DB
标准库对应的 DB 句柄是 DB.SQLDB,可以使用标准库的所有方法,主要是以 Query,Exec 开头扩展的系列方法。 使用标准库需要搞清楚很多细节, 比如 stmt,rows,row 等概念,对 null 的特殊处理,不熟悉的朋友容易出错。 项目中不建议直接使用标准库,比较难用,一般有第三方的 orm 库和 sqlx 类强化的库。
|
|
怎么使用 redis 丝滑利器
- 安装库
|
|
- 初始化
|
|
- string
- SetString - 写入 string
- 自动处理连接池回收
- GetString
- 自动转换返回的 string 类型数据
- 自动处理连接池回收
- SetString - 写入 string
|
|
Author hopehook
LastMod 2017-06-14