同样的SQL查询语句,分别在navicat中执行和在项目中调用持久层
在navicat中查询到的结果,12个字段信息。
{JGMC=JD, nd=2021, 总记录数=3, 核验通过=2, qxmc=建德市, jd=2, yldwid=1325647510802268160, yd=4, 自动核验通过=2, 人工核验通过=0, 核验不通过=1}
控制台输出map对象,这里只取到了11个键值对数据。
当数据库中存在字段数据为null时,使用Map集合存储的返回结果集只存放了这个除这个字段以外的其他字段数据。
解决:
Oracle:查询语句中使用NVL(E1,E2)或NVL2(E1,E2,E3)函数
nvl函数基本语法为nvl(E1,E2),意思是E1为null就返回E2,不为null就返回E1。
nvl2函数的是nvl函数的拓展,基本语法为nvl2(E1,E2,E3),意思是E1为null,就返回E3,不为null就返回E2。
Mysql: 使用IFNULL(expr1,expr2)函数,用法是一样的。