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