1. 程式人生 > >java處理資料庫null值

java處理資料庫null值

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();
   	}