如何将一个list传入到mySql语句进行查询

如何将一个list传入到mySql语句进行查询

方法(一)
将list封装成一个Map传入进去

	//(1)将如下字符串分隔之后放入到list里面
	String cols = ”1,2,3,4,5,6”;
	List yids = new ArrayList();
	String[] as = cols.split(",");
	for(String s : as){
		yids.add(s);
	}
	//(2)将list放到Map里面,正常的传入到后台
	Map map2 = new HashMap();
	Long productId = 1111;
	map2.put("ids", yids);
	map2.put("productId", productId);
	specDataMapper.updateInvalidByProductIdAndCols1(map2);

mapper中sql语句如下


	    update tbl_mall_spec_data
	    set invalid = 1
	    where product_id = #{productId,jdbcType=BIGINT}
	     and cols1 not in 
	     //注意connection里面是ids item里面就是传过来的集合
	    
		   #{item}
	    
  

方法(二)
(1)将如下字符串分隔之后放入到list里面

    Long productId = 1111;
	String cols = ”1,2,3,4,5,6”;
	List yids = new ArrayList();
	String[] as = cols.split(",");
	for(String s : as){
		yids.add(s);
	}
	specDataMapper.updateInvalidByProductIdAndCols1(yids,productId);
	

(2)service注意 由于传进去的是两个参数 所以需要加上@Param 否者不会识别此参数

List getModelListByIds(@Param List ids,@Param Long productId);

(3)mapper中sql语句如下


	    update tbl_mall_spec_data
	    set invalid = 1
	    where product_id = #{productId,jdbcType=BIGINT}
	     and cols1 not in 
	     //注意由于直接传入的是list所以connection里面是list   item里面就是传过来的集合
	    
  			#{item}
  	    
  

你可能感兴趣的:(sql数据库经典面试题,mysql,mysql)