Golang Go语言中持久化用哪个库好?

Golang Go语言中持久化用哪个库好?

我不喜欢 orm,感觉很僵硬,比较习惯用 mybatis。

go 有什么选项吗?初步意向是在 sqlx 和 xorm 中选一个。

16 回复

目前用 xorm

更多关于Golang Go语言中持久化用哪个库好?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


难道不是首先考虑 gorm 吗
其实我也不太喜欢 orm,我觉得 sqlx 就挺好,但是单表的 curd 还得靠手写就比较烦,你可以试试 github.com/ilibs/gosql,在 sqlx 之上又封装了一下,用起来还算比较舒服。另外也可以配合一些 sqlbuilder 库用,比如滴滴的 gendry

gosql 打不开啦。我是首先考虑的 gorm,但是一看这个用法就想起了 hibernate,还是算了吧

推荐 sqlx 个人准备用,不过数据库 null 值问题到时候看怎么处理方便

目前用 xorm

gorm 的 raw 查询 scan 到自定义的结构体

#10 这个有什么什么隐藏坑?



线上用几年了, 没坑

唯一碰到的也是自己代码的问题

没有处理一个未知的 panic (前端在某次更新后传递一个非法的参数导致类型转换失败) 连接没有关闭 连接没有释放 导致连接用尽

其他就没有遇到过问题

sqlboiler

喜欢 mybatis 可以看下 xormplus

gorm 了解下

在Golang(Go语言)中,持久化操作可以选择多个库,具体选择哪个库取决于项目的需求和开发者的偏好。以下是一些常用的持久化库推荐:

  1. 标准库encoding/json

    • 适用于简单的键值对存储或配置文件的持久化。
    • 提供了JSON格式的序列化和反序列化功能。
  2. Gorm

    • 一个强大的对象关系映射(ORM)库,支持多种数据库(如MySQL、PostgreSQL、SQLite等)。
    • 提供了丰富的特性,如日志记录、事务支持、自动迁移等。
    • 简化了数据库操作,使开发者能够更专注于业务逻辑。
  3. BoltDB

    • 一个嵌入式键值存储数据库,适用于需要快速访问和持久化存储的小型应用。
    • 提供了简单的API进行数据的读写操作。
  4. Badger

    • 一个快速的、基于LSM树的键值存储库,适用于需要高性能和持久化的场景。
    • 支持事务和压缩,适合存储大量数据。
  5. Bolt和Badger的对比

    • BoltDB更适合小型、简单的键值存储。
    • Badger则更适合需要高性能和大量数据存储的场景。

综上所述,对于Go语言中的持久化操作,可以根据项目的具体需求选择合适的库。如果项目需要ORM支持,Gorm是一个不错的选择;如果项目需要嵌入式键值存储,BoltDB可能更合适;而如果项目需要高性能和大量数据存储,Badger则是一个更好的选择。

回到顶部