问题:SQL语句查询不到记录,导致空指针异常
SQL语句:
select * from mixinfo where infotype='网站简介'
代码:
publicList<HashMap> select(String sql)
{
System.out.println(sql);
List<HashMap> list = new ArrayList();
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while(rs.next())
{
HashMap map = new HashMap();
int i = rsmd.getColumnCount();
for(int j=1;j<=i;j++)
{
if(!rsmd.getColumnName(j).equals("ID"))
{
String str = rs.getString(j)==null?"": rs.getString(j);
if(str.equals("null"))str = "";
map.put(rsmd.getColumnName(j), str);
}
else
map.put("id", rs.getString(j));
}
list.add(map);
}
rs.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
if(sql.equals("show tables"))
list = select("select table_name from INFORMATION_SCHEMA.tables");
else
e.printStackTrace();
}
return list;
}
原因:
可是是因为SQL语句中的中文字符传递的时候乱码了,我遇见的问题是这个。
解决办法:在连接SQL的URL中添加?【useUnico
de=true&characterEncoding=UTF-8】
若URL在xml配置文件中配置的则在URL后添加?【useUnicode=true&characterEncoding=UTF-8
】