在实际开发中,我们经常用list map 数组来存放SQL查出来的数据。
那问题是:诺是数据库没有到数据,此时的list,map,数组,是null还是空呢?
准备:使用mysql数据库,建立一个user表,字段 id,name,sex ,sex的值是1,
使用ssm框架,使用Junit单元测试。
先看list测试吧:
这是测试代码:
//list测试
@Test
public void testJunit(){
User user = new User();
user.setSex(2);
//sex=2查不到数据
List<User> listUser = ud.queryListUserBySex(user);
System.out.println(listUser);
if (null!=listUser) {
System.out.println("ssa");
}
}
这是console打印的内容:
[]
ssa
这说明 list集合是存在的 但是集合里边没有数据,所以我们在判断的有没有查到数据的时候不能简单的用null来判断 使用list,size()==0
在看map吧
//map测试
@Test
public void testJunit2(){
User user = new User();
user.setSex(2);
//sex=2查不到数据
Map<String, User> map = ud.queryListUserBySexMap(user);
System.out.println(map);
if (null==map) {
System.out.println("ssb");
}
}
看console打印内容
null
ssb
这说明此处map是null 不是空,所以可以用null来做判断,看DAO是不是从数据库查到了数据
最后看一下数组吧
//数组测试
@Test
public void testJunit3(){
User user = new User();
user.setSex(2);
//sex=2查不到数据
User[] array = ud.queryListUserBySexArray(user);
System.out.println(array);
if (null!=array) {
System.out.println("ssc");
}
}
看console打印结果
[Lcom.go.entity.User;@2ccc6372
ssc
这个说明数组不是null,数组是空的,所以在使用数组的时候应该使用数组的长度来判断是不是从数据库查到了数据