jfinal Db.query 查询为null时返回数据错误

使用jfinal框架的Db功能查询数据,

使用Db.query(sql),查询数据时,sql查询为null

返回结果竟然,是list数组的size为1,第一个对象为null

返回结果list 打印出来是这个[null]

sql:select registrationid from t_app_user where devicetype=2 and mobile =? and areaid=?

jfinal版本 4.8 @Jfinal大佬

评论区

JFinal

2020-08-07 16:24

你的 sql 中的 select 中只有一个字段:registrationid, 所以返回值会被封装成 List《Object》,也就是说 List 中的元素直接就是数据值

如果 select 中的字段超过 1 , 则会封装成 List《Object[]》,也就是说 List 内部的无素是 Object 数组

你得到的返回值 list.size() 为 1,证明是确实查到了一条数据,只不过这条数据的值是 null 而已, 要注意数据库也是可以存在 null 值的

检查数据库中的 registrationid 有没有值为 null 的记录

zzutligang

2020-08-08 09:59

我的理解是,如果是select count,select sum这类的查询,返回一定是有一个成员的,但如果没有符合条件的记录,这个成员的值会是null,如果是直接select 字段,只要返回集合大于零,就一定是查到数据了。把那个sql语句放到数据库工具里测试一下看看。

一条狗

2020-08-14 10:07

对的,查询有数据,只是该字段值为null,没有毛病

热门反馈

扫码入社