关于Mybatis中mapper.xml的传入参数简单技巧
由于在做项目的时候,我看见同事使用的传入参数类型各式各样,感觉没规律可言,闲暇的时候我就自己搭建了项目做了一些传入参数的测试(当然其实更好的方式是看源码,但是博主能力有限,毕竟入行没多久,看起来很吃力,只能靠测试来找规律,下面是我发现的小技巧,我测试的是3.4.x版本的,猜想应该现在用的版本规律都差不多);
首先声明,常用的不管传入参数是什么,sqlStatement中的parameterType都可以不写,如下图:
请关注6、
1: 对于传入参数为对象类型的,直接使用属性.属性.属性获取值 , 如: #{xx.xx.xx};
2:对于传入参数为map类型的,直接使用key获取值,如 : map = {"name": "张三''},使用#{name}获取“张三”;
3: 对于传入参数为集合类型,一般都会使用到foreach标签,在collection属性中使用collection或者list或array获取该集合,collection, list是针对List类型,array是对数组类型,表达式为:collection="collection",collection="list",collection="array";
4 : 对于简单类型,获取的时候可以通过任意键获取。如 : #{我是任意键},#{x},#{y},#{z}均可获取;
5 : 对于单个传入参数,使用@Param(“key”)的时候可以把参数装到map中,和2一样,使用key获取值;
6 : 对于多个参数(包含简单类型,list和array),如果使用全部使用@Param装到map中,就可像2一样使用key获取值,当然也可以使用通用方法,对于第一个参数我们就使用#{param1}获取,第二个参数使用#{param2}获取,以此类推;如果不使用@Param,也可以使用#{param1},#{param2}获取(还可以使用arg0,arg1..可忽略);
其实我可能也没描述清楚,在此表示惭愧!
————————————————
版权声明:本文为CSDN博主「迪迪的男票子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35423108/article/details/76255202
关于Mybatis中mapper.xml的传入参数简单技巧的更多相关文章
- MyBatis的mapper.xml文件的参数问题:org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map
配置参数类型有两种选择,即:parameterType和parameterMap 不管参数是否是基本数据类型还是map类型,都是使用parameterType. 版权声明:本文为博主原创文章,未经博主 ...
- Mybatis中mapper.xml的使用
详解多对多,mybatis多对多查询(xml方式和注解方式) 链接:https://blog.csdn.net/qq_42524262/article/details/98383977 链接:http ...
- @Param注解在mybatis中的使用以及传入参数的几种方式(转)
第一种: Dao层的方法 <span style="font-size:12px;">Public User selectUser(String name,String ...
- MyBatis 中 Mapper 接口的使用原理
MyBatis 中 Mapper 接口的使用原理 MyBatis 3 推荐使用 Mapper 接口的方式来执行 xml 配置中的 SQL,用起来很方便,也很灵活.在方便之余,想了解一下这是如何实现的, ...
- 逆向工程生成的mybatis中mapper文件。mapper接口,实例化成对象
逆向工程生成的mybatis中mapper文件中,*mapper文件只是接口,而不是类文件.但是却可以通过spring的容器获得实例. 例如: //1.获得mapper代理对象,从spring容器获得 ...
- maven中mapper.xml不发布的问题
在自定义的包中定义了mapper.xml然后利用mybatis的扫描包形式来动态创建mapper 开启工程报错: 说无效的绑定 原因: 发布的war中,工程包中的mapper根本就没有出现在class ...
- (转)解决mybatis的mapper.xml查询不出数据,结果一直为null问题
背景:记录mybatis使用过程中遇到的相关问题. 解决mybatis的mapper.xml查询不出数据,结果一直为null问题 解决方案: 1 修改实体类与数据库字段名相同 2 修改sql查询语句, ...
- mybatis进行mapper.xml测试的时候发生"必须为元素类型 “mapper” 声明属性 “namespace”
1.Caused by Caused by: org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 45; 必须为元素类型 " ...
- mybatis 中的 xml 配置文件中 ‘<’、 ‘>’ 处理
mybatis 中的 xml 配置文件中 '<'. '>' 处理 1.使用转义字符将 '<'. '>' 替换掉. 描述 字符 转义字符 小于号 < < 大于号 &g ...
随机推荐
- nginx的代理配置
date: 2019-07-19 16:52:18 author: headsen chen proxy_pass http://aaa /; 如果在proxy_pass末尾的url加/,表示绝对 ...
- flutter Form表单
import 'package:flutter/material.dart'; class FormDemo extends StatelessWidget { @override Widget bu ...
- Dart静态方法、对象操作符和类的继承
/* Dart中的静态成员: 1.使用static 关键字来实现类级别的变量和函数 2.静态方法不能访问非静态成员,非静态方法可以访问静态成员 */ // class Person { // stat ...
- Python的collections之defaultdict的使用及其优势
user_dict = {} users = ["baoshan1", "baoshan2", "baoshan3","baosh ...
- shell编程系列19--文本处理三剑客之awk中的字符串函数
shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...
- Java PDF转换成图片并输出给前台展示
首先需要导入所需工具类 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>fo ...
- 使用 evo 工具评测 VI ORB SLAM2 在 EuRoC 上的结果
http://www.liuxiao.org/2017/11/%E4%BD%BF%E7%94%A8-evo-%E5%B7%A5%E5%85%B7%E8%AF%84%E6%B5%8B-vi-orb-sl ...
- 判断本网段有多少可用的ip地址
为了提高效率,使用多线程方式同时ping. 但是如果开启255个线程,又会因为网络端口太拥挤,会被判定为无法ping通.所以本例使用java自带线程池,线程池的连接数还不能太大,启动了15个线程. 等 ...
- 【444】Data Analysis (shp, arcpy)
ABS suburbs data of AUS 1. Dissolve Merge polygons with the same attribute of "SA2_NAME16&quo ...
- django 自定义 密码加密方式 及自定义验证方式
在django1.6中,默认的加密方式是pbkdf_sha256,具体算法不表,一直以来用django的自带用户验证都十分顺手,但如果需要修改默认加密方式为md5,具体方法为: 在settings.p ...