Mybatis 传参问题
我遇到的问题是需要在Mybatis中传入一个Session取到的name和批量更新的id,用的是第三种封装Map的方法实现
最后附上自己的代码
MyBatis的foreach语句详解
<select id="dynamicForeachTest" resultType="Blog">
select * from t_blog where id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
上述collection的值为list,对应的Mapper是这样的
public List<Blog> dynamicForeachTest(List<Integer> ids);
测试代码:
@Test
public void dynamicForeachTest() {
SqlSession session = Util.getSqlSessionFactory().openSession();
BlogMapper blogMapper = session.getMapper(BlogMapper.class);
List<Integer> ids = new ArrayList<Integer>();
ids.add(1);
ids.add(3);
ids.add(6);
List<Blog> blogs = blogMapper.dynamicForeachTest(ids);
for (Blog blog : blogs)
System.out.println(blog);
session.close();
}
2.单参数array数组的类型:
<select id="dynamicForeach2Test" resultType="Blog">
select * from t_blog where id in
<foreach collection="array" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
上述collection为array,对应的Mapper代码:
public List<Blog> dynamicForeach2Test(int[] ids);
对应的测试代码:
@Test
public void dynamicForeach2Test() {
SqlSession session = Util.getSqlSessionFactory().openSession();
BlogMapper blogMapper = session.getMapper(BlogMapper.class);
int[] ids = new int[] {1,3,6,9};
List<Blog> blogs = blogMapper.dynamicForeach2Test(ids);
for (Blog blog : blogs)
System.out.println(blog);
session.close();
}
3.自己把参数封装成Map的类型
<select id="dynamicForeach3Test" resultType="Blog">
select * from t_blog where title like "%"#{title}"%" and id in
<foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
上述collection的值为ids,是传入的参数Map的key,对应的Mapper代码:
public List<Blog> dynamicForeach3Test(Map<String, Object> params);
对应测试代码:
@Test
public void dynamicForeach3Test() {
SqlSession session = Util.getSqlSessionFactory().openSession();
BlogMapper blogMapper = session.getMapper(BlogMapper.class);
final List<Integer> ids = new ArrayList<Integer>();
ids.add(1);
ids.add(2);
ids.add(3);
ids.add(6);
ids.add(7);
ids.add(9);
Map<String, Object> params = new HashMap<String, Object>();
params.put("ids", ids);
params.put("title", "中国");
List<Blog> blogs = blogMapper.dynamicForeach3Test(params);
for (Blog blog : blogs)
System.out.println(blog);
session.close();
}
----------------------------------------------------------------------------------------------
Mybatis 传参问题相关推荐
- mybatis传入数组怎么写_推荐的MyBatis传参方式List、数组等
MyBatis 推荐的传参方式 如果要详细的学习 MyBatis,推荐看这个教程:https://www.w3cschool.cn/mybatis/ 1. 单个参数//接口方法int getAgeBy ...
- mybatis传参问题总结
一. 传入单个参数 当传入的是单个参数时,方法中的参数名和sql语句中参数名一致即可 List<User> getUser(int id);<select id="getU ...
- mybatis 传参是 liststring 的注意事项
<!--付款 批量 修改账单状态--><update id="editbillpayALL" parameterType="java.util.List ...
- mybatis传参为map的写法
接口方法是这样的 XxlJobInfo getInfoByParameters(@Param("param") Map<String, String> param); ...
- mybatis java传参_[Java教程]Mybatis批量和传参
[Java教程]Mybatis批量和传参 0 2014-07-31 04:00:12 MyBatis中批量插入 方法一: resultType="java.lang.String" ...
- mybatis中#{}和${}传参的区别
最近在用mybatis,之前用过ibatis,总体来说差不多,不过还是遇到了不少问题,再次记录下, 比如说用#{},和 ${}传参的区别, 使用#传入参数是,sql语句解析是会加上"&qu ...
- MyBatis框架 传参、事务、缓存(二级)
传参 在mapper.xml文件中的标签中的parameterType可以可控制参数 传入参数的方法: sSession.select("虚拟包.id", 参数列表); SQL语句 ...
- MyBatis复习(四):#{}占位符与SQL传参
参数类型 1. MyBatis的parameterType参数类型可以是基本数据类型.String.包装类型.java.util.Map.java.util.LinkHashMapd等 ${}和#{} ...
- mybatis的mapper接口与xml传参问题
本文来说下mybatis的mapper接口与xml传参问题 文章目录 单个基础数据类型的传参 多个基础数据类型的传参 单个javabean 多个javabean 单个基础数据类型的传参 也就是说,接口 ...
- MyBatis获取参数值的两种方式以及传参情况
MyBatis获取参数值的两种方式 MyBatis获取参数值的两种方式:${}和#{} 传参情况 演示环境 1.单个字面量类型的参数 2.多个字面量类型的参数 3.map集合类型的参数 4.实体类类型 ...
最新文章
- 计算机网络知识点1——计算机网络概述
- 10.4 route:显示或管理路由表
- engagement center的session.connect
- 问题步骤记录器——“懒教师”的好帮手
- 我们为什么使用Node
- net 去掉第一位和最后一位_本赛季英超门将的扑救成功率,第一位和最后一位竟来自同家俱乐部...
- 巩膜:论文翻译《一种改进的眼角检测算法》An Improved Algorithm for Eye Corner Detection
- SQL Server中的查询优化技术:数据库设计和体系结构
- EVE-NG之Cisco FirePower 系统
- (秒杀项目) 4.5 项目部署与压测
- 睡后收益 -- CSDN博客打赏功能及自定义模块以及代码分享
- 颜宁谈为何选择深圳:一拍即合!我麻溜地向普林斯顿递了辞职申请
- Docker之Dockerfile原理
- 新版本GPU加速的tensorflow库的配置方法
- Pycharm Professional Edition 激活码(license),有效期至2018年01月30日
- java 汽车加油问题_贪心算法 汽车加油问题 | 学步园
- HTTP之(二)HTTP协议简介
- 软件构造复习小结(2)——设计规约(Specification)
- 关于MNN中图像预处理
- 【备忘】达内2017Java全套最新价值2万元视频教程
热门文章
- 备忘:BLOCK CORRUPTION IN SYSTEM DATAFILE
- 返回字符串AText的ACount个复本
- HDU10月月赛总结
- 20191201每日一句
- 190514每日一句
- 181219每日一句
- Atitit gui的实现模式文本 dom ast 像素绘图api native 目录 1. Pl ast xml domAst	1 1.1. 简介	1 1.1.1. 【具体语法树】	2 2.
- Atitit json array to csv 目录 1. Lib	1 1.1. Apache csv lib	1 1.2. Org.json.jar cdl模式	1 2. other	1 2
- Atitit 提升用户体验 生物识别 与登录 身份验证
- atitit 国家与社区发展战略研究attilax 总结 v2 .docx