JdbcTemplate底层操作在IN语句中传入一组参数值实例

public List<Object> createPrivilege(int start,int end,String[] cards,String[] doors){
		String cards_params="";
		String doors_params="";
		StringBuffer sql=null;
		if(cards.length>0&&doors.length>0){
			for(int i=0;i<cards.length;i++){
				cards_params+=cards[i]+(i!=cards.length-1?",":"");//把字符串数组拆开拼接“,”最后一个拼接空字符串
			}
			for(int i=0;i<doors.length;i++){ 
				doors_params+=doors[i]+(i!=doors.length-1?",":"");//把字符串数组拆开拼接“,”最后一个拼接空字符串
			}
		}
		if(cards.length>0&&doors.length>0){
			 sql=new StringBuffer("SELECT  * from (SELECT door_id,card_id,device_name,dept_name,card_no,user_name,employee_id,station,subname,name,ROWNUM rn ");
			sql.append(" from (SELECT T1.door_id,T1.ROOM_ID,T1.device_name,t2.station,t2.subname,t3.name from (SELECT  door_id,room_id,device_name  from");
			sql.append(" t_device h1 INNER JOIN (SELECT door_id,device_id from t_gate_door WHERE door_id in ("+doors_params+")) ");//传入一组参数
			sql.append(" h2 ON H1.device_id=H2.DEVICE_ID) t1 LEFT JOIN (SELECT r.roomid,st.station,st.subname from t_room r INNER JOIN t_station st on ");
			sql.append(" r.substationid=st.substationid) t2 on t1.ROOM_ID=t2.roomid LEFT JOIN t_room t3 on t1.room_id=t3.roomid) , (SELECT ");
			sql.append(" t1.card_id,t2.dept_name,t2.card_no,t2.user_name,t2.employee_id from ");
			sql.append(" (SELECT  card_id from t_gate_card WHERE card_id in("+cards_params+")) ");//传入一组参数
			sql.append(" t1 INNER JOIN (SELECT p1.card_id,p2.dept_name,p1.card_no,p2.user_name,p2.employee_id from ");
			sql.append(" t_gate_card p1 INNER JOIN (SELECT u.user_id,u.user_name,u.employee_id,"); 
			sql.append(" d.dept_name from t_gate_user u LEFT JOIN t_gate_dept d on u.dept_id=d.dept_id) p2 on p1.user_id=p2.user_id) t2");
			sql.append(" on T1.card_id=T2.CARD_ID)  WHERE ROWNUM <="+end);
			sql.append(" ) WHERE rn>"+start);
			return this.getJdbcTemplate().query(sql.toString(), new getCreatePrivilege());
		}
		return null;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值