后台请求数据时候用占位符写sql语句
这里用案例说明
@Override
public ArrayList<Guider_table> queryGuiderAll2(Map<String, Object> map) {
ArrayList<Guider_table> list=new ArrayList<Guider_table>();
Connection conn=DBUtil.getConn();
PreparedStatement ps=null;
ResultSet rs=null;
try {
//定义sql语句
StringBuffer sql = new StringBuffer();
sql.append("select * from guider_table where 1=1");
//判断是否有条件查询遍历数据
if(!map.get("content").equals("")){
sql.append(" and g_name like ? or id = ? or g_phone = ? ");
}
sql.append(" limit ?,?");
ps =conn.prepareStatement(sql.toString());
ps.setInt(1,Integer.parseInt(map.get("star")+""));
ps.setInt(2,Integer.parseInt(map.get("size")+""));
//判断是否有条件查询遍历数据
if(!map.get("content").equals("")){
ps.setString(1,"%"+map.get("content")+"%");
for (int i = 2; i <4; i++) {
ps.setString(i,map.get("content")+"");
}
ps.setInt(4,Integer.parseInt(map.get("star")+""));
ps.setInt(5,Integer.parseInt(map.get("size")+""));
}
/* //获取参数 map中不为空的键
Set<String> nam_space = map.keySet();
for (String str : nam_space) {
if(str!=null && !("").equals(str)){
if("content".equals(str)){
sql.append("or g_name like ? ");
}else if("content".equals(str)){
sql.append("or id = ? ");
}else if("content".equals(str)){
sql.append("or g_phone = ? ");
}
}
}
//给问号 赋值
int i=1;
for (String str : nam_space) {
//取键对应的值
Object knames = map.get(str);
if(knames!=null && !("").equals(knames)){
ps.setObject(i,knames);
i++;
}
}*/
rs=ps.executeQuery();
while(rs.next()&&rs!=null){
Guider_table guider=new Guider_table(
rs.getInt("id"),
rs.getString("g_name"),
rs.getString("g_sex"),
rs.getInt("g_age"),
rs.getString("g_phone"),
rs.getString("g_header"),
rs.getDouble("g_grade"),
rs.getString("g_introduce"),
rs.getInt("g_status"));
list.add(guider);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBUtil.dbClose(rs, ps, conn);
}
return list;
}