Golang Go语言中持久化用哪个库好?
Golang Go语言中持久化用哪个库好?
我不喜欢 orm,感觉很僵硬,比较习惯用 mybatis。
go 有什么选项吗?初步意向是在 sqlx 和 xorm 中选一个。
难道不是首先考虑 gorm 吗
其实我也不太喜欢 orm,我觉得 sqlx 就挺好,但是单表的 curd 还得靠手写就比较烦,你可以试试 github.com/ilibs/gosql,在 sqlx 之上又封装了一下,用起来还算比较舒服。另外也可以配合一些 sqlbuilder 库用,比如滴滴的 gendry
gosql 打不开啦。我是首先考虑的 gorm,但是一看这个用法就想起了 hibernate,还是算了吧
推荐 sqlx 个人准备用,不过数据库 null 值问题到时候看怎么处理方便
目前用 xorm
postgresql 推荐 https://github.com/go-pg/pg
#10 这个有什么什么隐藏坑?
线上用几年了, 没坑
唯一碰到的也是自己代码的问题
没有处理一个未知的 panic (前端在某次更新后传递一个非法的参数导致类型转换失败) 连接没有关闭 连接没有释放 导致连接用尽
其他就没有遇到过问题
sqlboiler
喜欢 mybatis 可以看下 xormplus
gorm 了解下
在Golang(Go语言)中,持久化操作可以选择多个库,具体选择哪个库取决于项目的需求和开发者的偏好。以下是一些常用的持久化库推荐:
-
标准库encoding/json:
- 适用于简单的键值对存储或配置文件的持久化。
- 提供了JSON格式的序列化和反序列化功能。
-
Gorm:
- 一个强大的对象关系映射(ORM)库,支持多种数据库(如MySQL、PostgreSQL、SQLite等)。
- 提供了丰富的特性,如日志记录、事务支持、自动迁移等。
- 简化了数据库操作,使开发者能够更专注于业务逻辑。
-
BoltDB:
- 一个嵌入式键值存储数据库,适用于需要快速访问和持久化存储的小型应用。
- 提供了简单的API进行数据的读写操作。
-
Badger:
- 一个快速的、基于LSM树的键值存储库,适用于需要高性能和持久化的场景。
- 支持事务和压缩,适合存储大量数据。
-
Bolt和Badger的对比:
- BoltDB更适合小型、简单的键值存储。
- Badger则更适合需要高性能和大量数据存储的场景。
综上所述,对于Go语言中的持久化操作,可以根据项目的具体需求选择合适的库。如果项目需要ORM支持,Gorm是一个不错的选择;如果项目需要嵌入式键值存储,BoltDB可能更合适;而如果项目需要高性能和大量数据存储,Badger则是一个更好的选择。