sql中传入一个list,返回一个list
admin
2023-05-12 17:02:17
0
-----------传入数组------返回list----------

String[] sendPersonIdArr = sendPersonId.split(",");
List list = staffInfoService.ListPhonesByIds(sendPersonIdArr);



	
	 	SELECT h.telphone from hr_staff_info h left JOIN sys_user u on h.STAFFINFO_ID=u.STAFF_ID where 
 			u.id in  
 			
				 #{item}
			
	

-----传入List----返回List------
 
public List findByUserIdList(List userlist) throws Exception {
	return (List) dao.findForList("UserMapper.findByUserIdList", userlist);
}


	
	select * from sys_user  where id in 
	   
		 #{item}
	
	
-----------传入一个map---------批量修改数据---------------

controller中:

Map map = new HashMap<>();
		map.put("notifyNum", notifyNum);
		map.put("userIdArr", userIdArr);
		userService.sendNotify(map);
		
sql中:



	update user 
	set notify_codes=if(notify_codes is null or notify_codes='',#{notifyNum},CONCAT(notify_codes,',',#{notifyNum}))
	 where id in
        
			  #{item}
       
		
		
总结:
①这里传入了一个String notifyNum和一个String[] userIdArr ,我们只要在sql中名称匹配就可以了。
②批量修改也可以用in 
③在修改的时候,我们可以在原来的字段值中直接后面追加字符串。当原来的值为数字的时候,我们可以  update user set notify_codes=notify_codes+'2'  where id='24' 
这样,假设原来为5,那么现在就为 7 了。
当原来的值是一个String类型时,我们可以用 CONCAT(notify_codes,',',#{notifyNum}) 来在后面追加 。比如原来为  "12" 现在最加一个  ",13"  那么结果为  "12,13"   
④判断一个字段是否为空的时候,用这样用  if(notify_codes is null or notify_codes='','为空或空字符串返回这个值','非空的时候返回这个值')  		

第二种方式:整条语句循环  (自己未验证)

  
        
            
                update test   
                  
                  test=${item.test}+1  
                  
                where id = ${item.id}  
           
            
    



sql中我们可以传入一个list或者一个数组,返回一个list。

这里用到了sql中的 In,用到了sql中的遍历。


在我们要向mapper.xml中传递String参数的时候,需要sql中设置

parameterType="String"

同时 要保证impl中的参数名和sql中的名字要一致。

如下:

@Override
	public User findByUE(String userId)throws Exception{
		return (User)dao.findForObject("UserMapper.findById",userId);
	}
	
	sql :
	u.id = #{userId}
















相关内容

热门资讯

以军士兵集体丢掉武器抗命,大喊... 据凤凰卫视报道,以色列国防军一军事基地7月30日发生士兵抗命事件,约120名士兵抗议指挥官做法,将武...
蒋成华任商务部副部长 国务院任免国家工作人员。任命蒋成华为商务部副部长。免去蒋成华的商务部国际贸易谈判副代表职务。
伊朗驻华大使:在军事威胁下,不... 新华社北京7月31日电(记者刁慧琳) 伊朗驻华大使法兹里7月28日表示,伊美回到谈判桌的前提是美国必...
伊朗革命卫队在霍尔木兹海峡击中... 当地时间31日,伊朗伊斯兰革命卫队发布声明称,革命卫队海军当天在霍尔木兹海峡击中并扣留了两艘违反禁令...
美媒:特朗普,遇到了一个更强硬... 据《纽约时报》7月29日报道,就在特朗普总统看似放弃战事升级计划几天后,美国再次与伊朗交火。上周末,...
女子做气管镜时不幸身亡,丈夫称... 7月29日,西安刘先生反映妻子在当地医院做支气管镜检查时死亡,看监控时发现医生疑有违规操作。刘先生表...
全网“帮卖西瓜”,然后呢? 近日,河南部分地区西瓜滞销的消息在网上热度很高。很多地方也伸出援手:有景区收购千斤西瓜、免费赠予游客...
美媒:乌克兰袭击伊朗船只,险引... 据《纽约时报》7月28日报道,据伊朗和西方官员称,伊朗曾考虑攻击乌克兰的一个港口,以报复乌克兰对一艘...
20年里,他只画美女,用东方风... 迈进KIM在上海的工作室,迎面是一整墙的美女们。她们像是刚从一场时髦的沙龙里退场,或倚或立,眉宇间是...
Google在港推出AI代理G... 观点网讯:7月29日,Google在香港推出AI代理Gemini Spark,该代理可全天候在后台运...