出现明明SQL语句没问题,但是却无法通过代码查询到结果的问题。

问题: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中添加?【useUnicode=true&characterEncoding=UTF-8】
若URL在xml配置文件中配置的则在URL后添加?【useUnicode=true&amp;characterEncoding=UTF-8

©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页