对于不同数据库使用的时候,可以先在数据库中执行sql语句,如果噢要查询的数据不存在,那么查看你使用的数据库返回的是nu l l
还是0
还是没有数据
以pgsql + mybatis
为例
1. 当在pgsql数据库中执行sql语句,返回值为null,则需要在程序中判断是否为null的情况。
sql :
<select id = "selectMaxAgeBySex" resultType="java.lang.Integer">
select max(age) from user where sex = '女';
</select>
数据库返回值如果等于null,那么在java程序中使用Integer的方法时需要判断是否为空,避免出现空指针异常。
java代码
package com.test.boke;
public class TestJava {
public static void main(String[] args) {
Integer maxAge = null;
System.out.println(integer.toString());
}
}
控制台数据错误信息:
Exception in thread "main"
java.lang.NullPointerException
at com.test.boke.TestJava.main
(TestJava.java:6)
2. 当在pgsql数据库中执行sql语句,返回值没有数据,则不需用在程序中判断是否为null的情况。
sql :
<select id = "selectUsernameById" resultType="java.lang.String">
select username from user where id = '1';
</select>
数据库返回值没有数据,那么使用String的方法时可以不判断是否为空。
常见的返回值类型String,List是不需要判断是否为空的现象,因为pgsql不会返回null。【验证:在你数据库中执行sql语句,查看你的数据库返回值】
如果返回值类型是String,pgsql数据库查不到数据时会返回空字符串,即相等于String str = “”;
如果返回值类型是list,pgsql数据库查不到数据时会返回size=0,即相当于List users = new ArrayList();
users的size=0。