后台请求数据时候用占位符写sql语句

后台请求数据时候用占位符写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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值