老師您好,我在使用List<Map<String,Object>>params查詢方法時,想從鍵盤通過輸入漢字名字,查詢出了問題,怎樣將漢字通過字符輸進去
模型層:
public List<Goddness> query(List<Map<String,Object>>params) throws Exception{
//獲取數(shù)據(jù)庫連接
Connection conn=DBUtil.getConnection();
StringBuilder sb=new StringBuilder();
sb.append("select * from imooc_goddness where 1=1" );
if(params!=null&¶ms.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=conn.prepareStatement(sb.toString());
System.out.println(sb.toString());
ResultSet rs=ptmt.executeQuery();
? ? List<Goddness> result=new ArrayList<Goddness>();
? ? Goddness g=null;
? ? while(rs.next())
? ? ? ?{
? ? g=new Goddness();
g.setId(rs.getInt("id"));
g.setUser_name(rs.getString("user_name"));
g.setAge(rs.getInt("age"));
g.setSex(rs.getInt("sex"));
g.setBirthday(rs.getDate("birthday"));
g.setEmail(rs.getString("email"));
g.setMobile(rs.getString("mobile"));
g.setCreate_date(rs.getDate("create_date"));
g.setCreate_user(rs.getString("create_user"));
g.setUpdate_date(rs.getDate("update_date"));
g.setUpdate_user(rs.getString("update_user"));
g.setIsdel(rs.getInt("isdel"));
? ? ? ? ?result.add(g);
? ? ? ? ?}
return result;
? ?}
}
視圖層:
List<Map<String,Object>>params=new ArrayList<Map<String,Object>>();
Map<String,Object>map=new HashMap<String,Object>();
map.put("name", "user_name");
map.put("rela", "=");
System.out.println("請輸入要查詢女神姓名:");
map.put("value", scan.next());
params.add(map);
List<Goddness> result=action.query(params);
for(Goddness g:result){
System.out.println(g);
}
控制臺提示錯誤如下:
2016-09-29
我運行添加方法的時候為啥他提示?缺失逗號,我檢查了我的符號都是對應(yīng)的
2016-04-16
我想問最后解決了么,我也遇到這樣的問題
2015-12-19
那是sql語句錯誤,sql的查詢語句中,漢字要加單引號或者雙引號