java處理資料庫null值
阿新 • • 發佈:2018-12-17
java讀取資料庫欄位遇到null值如何處理
最近在使用java讀取資料庫欄位時,遇到了一個問題——當欄位中出現null值時,該null值後面的值將無法繼續讀到ResultSet中,下面將解決辦法做一個描述。 更改前的程式碼為:
try {
Class.forName(driver); //載入資料庫驅動
Connection conn=DriverManager.getConnection(URL, USER, PASSWORD); //連線資料庫
Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE , ResultSet.CONCUR_READ_ONLY);
ResultSet rs=st.executeQuery(sql); //執行sql查詢,並將查詢結果存放在ResultSet結果集中
List<String> tel = new ArrayList<String>(); //定義一個ArrayList,用於將結果集ResultSet中的字串資料存放到陣列tel中
try {
while(rs.next()) { //判斷字串是否為空
tel.add(new String(rs.getString("aa").getBytes())); //從結果集ResultSet中讀取欄位aa中的內容,放到ArrayList陣列arr中
}
}catch(NullPointerException e) {
e.getMessage();
}
} catch(Exception e) {
e.printStackTrace();
}
在資料庫欄位存在空值時,對空值進行判斷,將空值替換成字串"空值",當然,你也可以根據具體需要,更改成"",或者其他形式。更改後的程式碼為:
try {
Class.forName(driver); //載入資料庫驅動
Connection conn=DriverManager.getConnection(URL, USER, PASSWORD); //連線資料庫
Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs=st.executeQuery(sql); //執行sql查詢,並將查詢結果存放在ResultSet結果集中
List<String> tel = new ArrayList<String>(); //定義一個ArrayList,用於將結果集ResultSet中的字串資料存放到陣列tel中
try {
while(rs.next()) { //判斷字串是否為空
if(rs.getString("aa") != null) {
tel.add(new String(rs.getString("aa").getBytes())); //從結果集ResultSet中讀取欄位aa中的內容,放到ArrayList陣列arr中
}else {
String key = "空值";
tel.add(key);
}
}
}catch(NullPointerException e) {
e.getMessage();
}
} catch(Exception e) {
e.printStackTrace();
}