Mybatis参数总结(转载)
转载自:
一、单个参数
1、基本数据类型
(1)直接使用
- List<ChargeRuleDO> tests(long id);
- <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
- select * from t_charge_rule t where t.id = #{id}
- </select>
- #{}中的参数名与方法中的参数名一致
(2)使用注解
- List<ChargeRuleDO> tests(@Param("aid") long bid);
- <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
- select * from t_charge_rule t where t.id = #{aid}
- </select>
- #{}中的参数名与方法中的@Param()里的参数名一致
2、复杂数据类型(这里主要是指java实体类)
(1)直接使用
- List<ChargeRuleDO> tests(TestQO testQO);
- <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
- select * from t_charge_rule t where t.id = #{id} and t.rule_type=#{ruleType}
- </select>
- #{}中的参数名与方法中的参数的属性名一致
(2)使用注解
- List<ChargeRuleDO> tests(@Param("atestQO") TestQO btestQO);
- <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
- select * from t_charge_rule t where t.id = #{atestQO.id} and t.rule_type=#{atestQO.ruleType}
- </select>
- #{}中的参数名与方法中的@Param()里的参数对应的属性名一致,而且必须写成"#{atestQO.id}"的格式,不能简写成"#{id}".
二、多个参数
1、基本数据类型
(1)直接使用
- List<ChargeRuleDO> tests(long id,String ruleType);
- <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
- select * from t_charge_rule t where t.id = #{0} and t.rule_type=#{1}
- </select>
- 这里改用#{index},其中,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。
(2)使用注解
- List<ChargeRuleDO> tests(@Param("id") long id,@Param("ruleType") String ruleType);
- <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
- select * from t_charge_rule t where t.id = #{id} and t.rule_type=#{ruleType}
- </select>
- #{}中的参数名与方法中的@Param()里的参数名一致
三、Map封装多参数:

- public List<XXXBean> getXXXBeanList(HashMap map);
- <select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">
- select 字段... from XXX where id=#{xxId} code = #{xxCode}
- </select>
- 其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个,map如何封装就不用了我说了吧。

四、List封装in:

- public List<XXXBean> getXXXBeanList(List<String> list);
- <select id="getXXXBeanList" resultType="XXBean">
- select 字段... from XXX where id in
- <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
- #{item}
- </foreach>
- </select>
- foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4')

Mybatis参数总结(转载)的更多相关文章
- (转载)深入了解MyBatis参数
原文地址:http://blog.csdn.net/isea533/article/details/44002219 深入了解MyBatis参数 相信很多人可能都遇到过下面这些异常: "Pa ...
- MyBatis参数绑定规则及原理分析
MyBatis参数的传递有几种不同的方法,本文通过测试用例出发,对其中的方式进行总结和说明,并对其部分源码进行分析. 一.测试用例(环境参考之前博客SSM接口编程一文 http://www.cnblo ...
- mybatis 参数为list时,校验list是否为空, mybatis ${}与#{}的区别,Mybatis sql in
1.mybatis 参数为list时,校验list是否为空 2. mybatis ${}与#{}的区别 简单来说#{} 解析的是占位符?可以防止SQL注入, 比如打印出来的语句 select * fr ...
- mybatis 参数为String,用_parameter 取值
mybatis 参数为String,if test读取该参数代码: <select id="getMaxDepartId" parameterType="java. ...
- Mybatis参数预编译
Mybatis参数预编译 一.数据库预编译介绍 1.数据库SQL语句编译特性: 数据库接受到sql语句之后,需要词法和语义解析,优化sql语句,制定执行计划.这需要花费一些时间.但是很多情况,我们的一 ...
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)【转载】
最近在学习Spring+SpringMVC+MyBatis的整合.以下是参考网上的资料自己实践操作的详细步骤. 1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于20 ...
- SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)(转载)
使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...
- 建造者模式组装mybatis参数Example()
参考:github, https://github.com/liuxiaochen0625/MyBatis-Spring-Boot-master.git 从controller组装tk.mybat ...
- MyBatis参数传入集合之foreach用法
传入集合list // 账户类型包括门店和分公司 List<Object> scopeList = new ArrayList<Object>(); scopeList.add ...
随机推荐
- 使用caffe 的 python接口测试数据,选定GPU编号
只需要在python脚本中添加两行代码: caffe.set_device(0) #使用第一块显卡 caffe.set_mode_gpu() #设为gpu模式 这样,就可以在默认显卡被占用(第一块显卡 ...
- IIS如何添加m3u8流媒体类型
m3u8,mime类型填写: application/x-mpegURL. ts ,mime类型填写: video/MP2T
- Apache优化提高并发数量
问题: 我们用lvs做了负载均衡.使用了两台server做login的服务.以及二次资源下载服务.可是在推广过程中.陆续有人反映server登录困难. 解决过程: 1.首先我们查看流量日志以及serv ...
- C语言基础(14)-递归
一. 递归的定义 函数可以调用自己,这就叫函数的递归. 先序递归和后序递归 #include <stdio.h> void test(int n); void test1(int n); ...
- python简单C/S模式示例
服务器端代码: #!/usr/bin/python import time, socket, threading # thread handle function def tcplink(sock, ...
- JME的flyCam和cam的区别
http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:camera 注意这句话: The flyCam class field gives ...
- SVN常见问题(转)
svn常见问题,报错,命令及我的总结 (2013-07-19 18:07:27) 转载▼ 我自己犯过的一个错误是:/svn/MyERP_core_Main/!svn/act/b8bd621b- ...
- UVA 679 Dropping Balls 由小见大,分析思考 二叉树放小球,开关翻转,小球最终落下叶子编号。
A number of K balls are dropped one by one from the root of a fully binary tree structure FBT. Each ...
- 配置LANMP环境(5)-- 安装NGINX与配置
安装nginx yum install nginx 若提示找不到nginx,则在软件源中添加nginx的软件源文件: vim /etc/yum.repos.d/nginx.repo 添加如下内容: [ ...
- Photoshop脚本之获得文件夹下所有特定后缀文件
function getAllFiles(folderName,houzhui){ folderName var regthis = new RegExp( '.+\.('+houzhui+')$', ...