千家信息网

sql中传入一个list,返回一个list

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,-----------传入数组------返回list----------String[] sendPersonIdArr = sendPersonId.split(",");List list =
千家信息网最后更新 2025年01月20日sql中传入一个list,返回一个list
-----------传入数组------返回list----------String[] sendPersonIdArr = sendPersonId.split(",");List list = staffInfoService.ListPhonesByIds(sendPersonIdArr);        -----传入List----返回List------ public List findByUserIdList(List userlist) throws Exception {        return (List) dao.findForList("UserMapper.findByUserIdList", userlist);}        
-----------传入一个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}
















0