1. 程式人生 > >MySql表中欄位為Null 和 空('') 有什麼區別, 分別有什麼影響?

MySql表中欄位為Null 和 空('') 有什麼區別, 分別有什麼影響?

資料準備

insert into user VALUES (6,NULL,1,0,1,NULL);
insert into user VALUES (7,'',10,0,0,'');

然後我們編寫了一個簡單的小程式查詢這兩條記錄

public User queryAnUserById(int id) {
        User user = userMapper.selectById(id);//orm層
        logger.info(user.toString());
        String name =user.getName();
        System.out.println(name.length());
        return
user; }

使用id=6查詢時候打印出

 User{name='null', age=1, money=0.0, gender=true,id=6, nameC='null'}

並在使用name時候,爆出NPE。Debug可見,這時候的name是一個null;
同時使用id=7進行查詢時候,列印結果為

User{name='', age=10, money=0.0, gender=false,id=7, nameC=''}

沒有報錯,這時name是一個空字串“”,並非null,其長度為0;