Golang Go语言中请教个 gorm 的问题

发布于 1周前 作者 sinazl 来自 Go语言

Golang Go语言中请教个 gorm 的问题
我用 gorm 读取 sqlite3 的文件,其中有个表 字段 id 是自增的,字段 date 是 DATE 类型,当我读取这个表的数据时,id 总是显示为 0,date 总是显示为 0001-01-01T00:00:00Z
请问下是怎么回事呢?应该怎么解决。
谷歌百度都没搜到怎么解决。。。

18 回复

代码呢

更多关于Golang Go语言中请教个 gorm 的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


代码呢,返回 error 了吗?

没读取到所以返回默认值了

没有 error,部分数据是正常的返回

已经补上了代码

有点不太明白为什么没有取到数据,因为同一列的其他部分数据有取到

连接参数 parselocal?

用数据库软件,打开源 sqlite 文件,看看里面是什么情况。如果数据正常,就是程序的问题。

我也遇到过一次,是数据库连接字符串上需要加上 parseDate=true (类似这样的一个配置,手机不方便查看)解决的,具体的看 readme 上面写的有。

用 SQLiteStudio 打开看数据是正常的

您说的是 parseTime=true&loc=Local 这两参数吗?好像这两是用在 MySQL 的连接

是的 连接参数你看看对不对头 感觉是连接参数的设置问题
也可以看看 b 站流出来的代码的参数设置阿

好的,我去看看呢,谢啦

把这个打出来:db.Where("Name=?","testcase").Find(&a).Error

估计是 RecordNotFound

Q: sqlite 真的连上了吗,其他数据能正常读出来吗

你数据库的列名是 Id ?日期列名 date ?检查写对了没……感觉你这大小写不统一

用 slice 接收试试

你没有验证是不是有 error 啊

db.LogMode(true)

加上这一句打印一下 sql 的日志

打印下日志吧。没查到数据肯定就是空值的啊。

当然,我很乐意帮你解答关于Go语言和GORM的问题。

GORM 是一个用于 Go 语言的强大 ORM(对象关系映射)库,它支持多种数据库,如 MySQL、PostgreSQL、SQLite 等,并提供了简洁易用的 API 来操作数据库。

关于 GORM,常见的问题可能涉及模型定义、查询、更新、删除、事务处理等方面。以下是一些常见问题的简要回答:

  1. 模型定义:在 GORM 中,你可以通过定义结构体来映射数据库表。使用 gorm:"column:xxx" 标签可以自定义字段名。

  2. 查询:GORM 提供了链式 API 来构建查询。例如,db.Where("name = ?", "jinzhu").Find(&users) 可以查询所有名字为 “jinzhu” 的用户。

  3. 更新:使用 Save 方法可以更新模型。例如,db.Save(&user) 会根据主键更新 user 模型的记录。

  4. 删除:使用 Delete 方法可以删除记录。例如,db.Delete(&user, user.ID) 会删除主键为 user.ID 的记录。

  5. 事务处理:GORM 支持事务处理,你可以使用 db.Transaction 方法来开始一个事务,并在回调函数中执行数据库操作。如果回调函数返回错误,事务会自动回滚。

如果你有更具体的问题,比如如何优化查询性能、如何处理复杂的关联关系等,可以提供更详细的描述,我会根据你的需求给出更具体的建议。希望这些信息对你有所帮助!

回到顶部