问答详情
源自:2-6 JDBC实战---搭建模型层 Ⅳ

用集合输出怎么报错了?Unknown column '?€??§‘????–??€?' in 'where clause'

public List<Goddes> query(List<Map<String, Object>>params) throws Exception{
        List<Goddes>result=new ArrayList<Goddes>();
        
        Connection cnn=DbUtil.getConnection();
        StringBuilder sb=new StringBuilder();
        sb.append(" select*from yingxiong  where 1=1 ");
        
        if(params!=null&&params.size()>0){
            for (int i = 0; i < params.size(); i++) {
                Map<String, Object>map=params.get(i);
                sb.append(" and "+map.get("name")+" "+map.get("rela")+" "+map.get("value")+" ");
            }
        }
        
        PreparedStatement ptmt=cnn.prepareStatement(sb.toString());
        
                System.out.println(sb.toString());
        ResultSet rs=ptmt.executeQuery();
        Goddes g=null;
        while(rs.next()){
            g=new Goddes();
            g.setId(rs.getInt("id"));
            g.setname(rs.getString("name"));
            g.setSex(rs.getString("sex"));
            g.setAge(rs.getInt("age"));

         result.add(g);
        }
        return result;
    }

提问者:初级阶段 2018-03-06 21:59

个回答

  • whosName
    2018-03-10 21:28:43

    应该是项目的字符集不对,SQL 语句拼接时遇到了汉字的乱码。可将项目字符集修改为UTF-8试下。