myBatis3批量修改查询操作

问题描述

配置UserMapper.xml文件里的内容:<select id="selectUser" parameterType="String" resultMap="result"> select * from t_user where f_pkid in(${pkId});</select><update id="alterUser" parameterType="java.lang.String">update t_user set f_isdeleted = 'Y' where f_pkid in<foreach item="pkId" index="index" collection="list" open="(" separator="," close=")">#{pkId}</foreach></update>得到的参数是31,32,33形式的字符串,第一种如果是#{}这种形式传参的话,参数外自动加上了单引号,只能查询一个。第二种${}这种形式也不对给不了参数 , 后面这种形式加foreach节点collection属性的值我又不知道怎么传 我用的是mybatis3版本 哪位朋友帮忙解决一下接口内容是:public List<User> selectUser(String pkId);public void alterUser(String pkId); 问题补充:ZavaKid 写道

解决方案

很可能是因为生命的参数类型 parameterType="String"的这样传进来的参数,就自动被加上引号了。第二种的foreach,应该是对可 iterable 作迭代的。但是你传入的是String,就不能迭代了。可以使用parameterType="java.util.list",然后在对应的实现类中,将String转成相应的list。
解决方案二:
短信你了
解决方案三:
引用你有这方面得代码吗,关于java类得,怎么将String转成相应的list啊按照你的情况,就是解析String,将每个项加入到一个list。比如 String s = "a,b,c"; String[] sarray = s.split(","); List<String> list = Arrays.asList(sarray);不过还是建议考虑接口是以list或者数组的形式暴露出来好了,

时间: 2025-01-21 09:37:22

myBatis3批量修改查询操作的相关文章

求解java中的 二维数组添加 删除 修改 查询 操作

问题描述 二维数组添加删除修改查询操作如何实现?不用传统数组用List()做一个通讯录用字符串输入的方式编写一个简单的通讯录.此通讯录由多条记录构成.每条记录包括一个联系人的姓名.性别.电话.通信地址,并具有查询.增加.修改.删除等功能,且每执行一次功能操作后,可以选择用类似以下的格式,输出通讯录的所有信息记录: 解决方案 解决方案二:這不是二維數組.用Map來做更合適,先定義一個個人資料的類,然後放到Map時用ID當KEY.解决方案三:我用List做

db-高并发的查询和修改DB操作

问题描述 高并发的查询和修改DB操作 有个项目对数据库存在高并发的查询和修改(同属一个数量级),除了使用缓存(优化查询)之外还有什么优化修改操作的方法吗 解决方案 基本就是cache机制,先查cache,没有在查数据库. 解决方案二: 如果数量级非常大可以考虑集群,主从部署.

asp批量添加修改删除操作示例代码

核心代码: <title>asp批量添加修改删除操作示例</title> <% if request.Form("op")="update" then'表单提交 ids=request.Form("ids") if ids<>"" then response.Write "要删除的数据id集合:"&ids&"<br>"

mybatis-Mybatis操作Oracle数据库:批量修改成功后返回的值是-1?

问题描述 Mybatis操作Oracle数据库:批量修改成功后返回的值是-1? Mapper.xml <update id="updateByMultiConditions" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="begin"

数据库-mysql查询语句批量修改的问题

问题描述 mysql查询语句批量修改的问题 在数据库中查询出地址为北京的数据,然后把这些数据的电话号码前面都加上010 解决方案 假设电话号码的字段名叫phone_num XXX是符合地址为北京的条件 update 表名 set phone_num=concat('010',phone_num) where XXX; 解决方案二: update table set xxx where yyy 解决方案三: update (select phone_num 表名 where phone_num n

批量修改同一目录下文件名--操作so easy

1.将要改名的文件放在同一个文件夹下: 2.开始 -> 运行(或者ctrl+R) -> 输入cmd,确定-> 切换到该文件夹下: 3.dir /b > rename.xls PS:可合并步骤2和3(在该文件夹下新建文本文档,内容为dir /b > rename.xls  ,文档保存为cmd.bat,双击) 4.打开rename.xls,A列会显示当前目录的所有文件名 5.在B列中输入要修改为的文件名,缩短长文件名可以通过替换的方式进行,按列替换. 6.在C1单元格输入公式  

【springmvc+mybatis项目实战】杰信商贸-32.出口报运修改+报运货物批量展现-批量修改控件1

上一次我们完成了出口报运业务-购销合同查询与上报,但是其中有很多东西没有完善,我们接下来逐步完成我们的出口报运剩下的业务. 我们要解决其中一个问题:我们在购销合同查询界面点击"上报"之后就会直接上报至出口报运,如果用户仅仅是误点或者测试,这个有点过于草率,我们需要加一些限制来保证操作的正确性. 还有一点就是我们的主信息不全 毛重.净重.长宽高等信息我们都没有填写,我们都应该添加.我们只能在修改中去添加它. 所以我们增加修改的方法: 回顾一下我们之前的出口报运的Mapper映射文件中已经

全面解析Hibernate关联操作、查询操作、高级特性、并发处理机制_java

本文所需的数据库初始文件,Hibernate常用操作的完整示例代码(包含所有Hibernate操作所需jar文件)提供下载学习:http://download.csdn.net/detail/daijin888888/9551724 1.Hibernate关联映射     1)什么是关联映射?         如果表之间具有关联关系,Hibernate允许我们在hbm.xml中描述他们的关联关系,然后在我们操作其中一张表时,自动的根据这种关系操作到另外的关系表,那么这种关联关系的设置,我们称之为

MYSQL批量修改表前缀与表名sql语句

方法一:使用sql语句修改mysql数据库表前缀名 首先我们想到的就是用sql查询语句来修改,这个方法也很方便,只需进入phpmyadmin后,在运行 SQL 查询框中输入如下语名就可以了. ALTER TABLE 原表名 RENAME TO 新表名; 如:ALTER TABLE old_post RENAME TO new_post; Sql查询语句有一个缺点,那就是一句SQL语句只能修改一张数据库的表名,如果你要精确修改某一张表,很好用.如果数据库表很多的话,不推荐使用.有木有,批量修改多个