MyBatis映射文件3(参数处理Map)
参数命名
POJO
如果多个参数,正好是业务逻辑的数据模型,那么我们就可以直接传入POJO,这样#{}中就可以直接使用属性名
Map
如果多个参数不是业务逻辑的数据模型,没有对应的POJO,为了方便,我们可以传入一个map,此时#{key}就是取出map的值
在接口中创建一个新方法:
Employee getEmpByMap(Map<String,Object> map);
创建新的<select>标签
- <select id="getEmpByMap" resultType="com.figsprite.bean.Employee">
- select id,last_name lastName,gender,email from tb_employee where id = #{id} and last_name = #{lastName}
- </select>
然后我们再做测试
- @Test
- public void test7() throws IOException {
- SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
- SqlSession openSession = sqlSessionFactory.openSession();
- try {
- EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
- Map<String,Object> map = new HashMap<>();
- map.put("id",3);
- map.put("lastName","Hello");
- Employee e = mapper.getEmpByMap(map);
- System.out.println(e);
- }finally {
- openSession.close();
- }
- }
TO
如果getEmpByMap方法调用频率很高,每次调用都需要重新创建一个map,这样的话,还是一件麻烦事,如果是这种情况,建议编写一个TO(Transfer Object),比如我们在查找分页记录时,需要多项内容:
Page{
int index;
int size;
}
思考题:
public Employee getEmp(@Param("id") Integet id,String lastName)
取值:idè#{id/param1} lastNameè#{param2}
public Employee getEmp(Integer id,@Param("e") Employee emp)
取值:idè#{param1} lastNameè#{param2.lastName/e.lastName}
public Employee getEmpById(List<Integer> ids)
如果是Collection类型或者是数组,也会特殊处理,封装在map,如果是Collection,那么key是Collection[i],如果是List,那么我们还可以使用list[i],至于数组,array[i]
取值:取第一个id值 idè#{list[0]}
转载于:https://www.cnblogs.com/figsprite/p/10735188.html
MyBatis映射文件3(参数处理Map)相关推荐
- [mybatis]映射文件_参数处理
参数处理 单个参数:mybatis不会做特殊处理 #{参数名}:取出参数值 多个参数:mybatis会做特殊处理 多个参数会被封装成一个map key:param1-paramN,或者参数的索引 va ...
- [mybatis]映射文件_参数处理_#和$取值区别
#{}:可以获取map中的值或者pojo对象属性的值 ${}:可以获取map中的值或者pojo对象属性的值 区别: #{}:是以预编译的形式,将参数设置到sql语句中,相当于原生jdbc的Prepar ...
- [mybatis]映射文件_参数处理_#取值时指定参数相关规则
jdbcType通常需要在某种特定的条件下被设置: 在我们数据为null的时候,有些数据库可能不能识别mybatis对null的默认处理.比如Oracle(报错): jdbcType OTHER:无效 ...
- MyBatis映射文件(一)
目录 一.MyBatis映射文件 1.insert.update.delete元素 2.主键生成方式 3.参数(Parameters)传递 (1)单个参数 (2)多个参数 (3)命名参数 (4)POJ ...
- 3 了解MyBatis映射文件
3.1 认识映射文件: 介绍: MyBatis的映射文件主要用于定义业务操作命令,实现对象与数据表字段的映射,并控制对最终结果的封装.MyBatis是针对SQL构建,相对具有相同功能的JDBC ...
- Mybatis映射文件!CDATA[[]] 转义问题
有没有觉得在mybatis映射文件写>(大于),<(小于)的时候贼麻烦,还得把"<",">"换位为"<", & ...
- Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项
Mybatis映射文件SQL语句模糊查询 1. "%"#{value}"%" 在参数中不需要添加 %_ 推荐使用 2. '%${value}%' 在参数中不需要 ...
- MyBatis映射文件如何给数据库的int类型字段“插入”string类型记录
MyBatis映射文件如何给数据库的int类型字段"插入"string类型记录. 数据库中对应字段名称和类型如下: 给数据库的int类型字段"插入"string ...
- mybatis 取查询值_Mybatis --- 映射文件、参数处理、参数值的获取、select元素
这样就可以在insert函数中获取新添加的用户的 id主键,否则获取不到 select * from student where id = #{id} insert into student(name ...
最新文章
- 的拼音怎么改正_「我就退出家长群怎么了?」:多少中年父母的崩溃,从家长群开始...
- 软件构造学习笔记-第四周
- 【Elasticsearch】解决Elasticsearch HTTP方式查询报SocketTimeoutException的问题 Connection reset by peer
- java socket 实现 http_Java Socket编程 - 基于Socket实现HTTP下载客户端
- 查看sql_一键查看Oracle数据库当前SQL_WORKAREA_ACTIVE的相关操作
- java forkjoinpool_Java并发——Fork/Join框架与ForkJoinPool
- Hands-on C++ Game Animation Programming阅读笔记(八)
- 2022年聚合工艺特种作业证考试题库及在线模拟考试
- Linux补全命令分析,实现Linux下上下键和命令补全
- PS教程证件照底片更换颜色
- 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题(2012年度笔试面试八十题)
- 搬家公司怎么收费 搬家收费标准
- placement delete
- 腾讯——云计算从业者认证系列1
- 测试打呼噜的软件,打呼噜人群福音!这款app能检测鼾声并提供一站式止鼾方案...
- 【全国数据】八大植被区划矢量数据(带坐标)
- 中国市场迎来AR-HUD元年
- 【学术相关】顶级论文创新点怎么找?中国高校首次获CVPR最佳学生论文奖有感...
- 融合AI技术的视频监控,为行业带来了哪些创新和突破?
- 自动生成单据编码方法
热门文章
- Java开发技术大杂烩(三)之电商项目优化、rabbitmq、Git、OSI、VIM、Intellj IDEA、HTTP、JS、Java...
- 控制器(下) -运维笔记
- SoftGrid教程系列
- 为你的Web程序加个启动画面
- Netflix的Hystrix使用教程
- [老生常谈] Linux 下读取windows共享目录
- VC98\mfc\lib' specified in 'LIB environment variable' 系统找不到指定路径
- OpenWrt的主Makefile工作过程-转
- 五种最常见的开源路由器第三方固件测评-转
- mysql group by cube_SparkSQL 中group by、grouping sets、rollup和cube方法详解