mybatis参数形式
1 使用map
<select id="selectRole" parameterType="map" resultType="RoleMap">
SELECT id, roleName, note
FROM role
WHERE roleName LIKE Concat('%',#{roleName},'%')
and note like Concat('%',#{note},'%')
</select>
在接口中如下定义
List<Role> selectRole(Map map);
说明:这种方法简单易用,弊端是业务关联性不强,查看参数需要查看代码,可读性下降。
2 使用注解传递参数
xml文件中定义sql语句如下
<select id="findRoleByAnnotation" resultType="roleMap">
SELECT id, roleName, note
FROM role
WHERE roleName LIKE Concat('%',#{roleName},'%')
and note like Concat('%',#{note},'%')
</select>
接口如下
List<Role> findRoleByAnnotation(@Param("roleName") String rolename, @Param("note") String note);
说明:通过@Param 提供的名称mybatis就知道 #{roleName} 代表 rolename 。参数可读性大大提高了。适用于参数数量较少的情况。如果参数数量过多,推荐使用javabean方式。
3 在参数过多的情况下,使用 javabean 传递参数
参数类RoleParam
public class RoleParam {
private String roleName;
private String note;
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
}
xml文件查询sql
<select id="findByJavaBean" resultType="roleMap" parameterType="com.huitong.service.command.RoleParam">
SELECT id, roleName, note
FROM role
WHERE roleName LIKE Concat('%',#{roleName},'%')
and note like Concat('%',#{note},'%')
</select>
接口文件中
List<Role> findByJavaBean(RoleParam roleparam);
说明:当参数个数多于5个时,推荐使用javabean方式。
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. ...
- Struts2之Action三种接收参数形式与简单的表单验证
有了前几篇的基础,相信大家对于Struts2已经有了一个很不错的认识,本篇我将为大家介绍一些关于Action接收参数的三种形式,以及简单的表单验证实现,下面进入正题,首先我们一起先来了解一下最基本的A ...
- requests接口自动化5-表单参数形式的post请求:data
post请求相对于get请求多一个body部分,body部分常见的数据类型有以下四种(注意是常见的,并不是只有4种) application/x-www-form-urlencoded(表单形式) a ...
- Mybatis参数预编译
Mybatis参数预编译 一.数据库预编译介绍 1.数据库SQL语句编译特性: 数据库接受到sql语句之后,需要词法和语义解析,优化sql语句,制定执行计划.这需要花费一些时间.但是很多情况,我们的一 ...
- mybatis参数传参、取值处理等
单个参数:mybatis不会做特殊处理 取值方式:#{参数名} 这里参数名不必与方法的形参名称一致,可以用任意参数名来接受实参 例子:方法:update(Integer id) sql映射文件取值#{ ...
- 建造者模式组装mybatis参数Example()
参考:github, https://github.com/liuxiaochen0625/MyBatis-Spring-Boot-master.git 从controller组装tk.mybat ...
随机推荐
- nginx的so_keepalive和timeout相关小计
KeepAlive 这里的keepalive是TCP的探活机制: [root@ ~]# sysctl -a |grep tcp_keepalive net.ipv4.tcp_keepalive_tim ...
- 猫眼 top_100 爬取 ___只完成了第一页
# python 3.7 from urllib.request import Request,urlopen import time,re,csv class Maoyan(object): def ...
- JavaScript(js)概述
一.特点: JavaScript和java并没有直接关系,就像雷锋与雷峰塔似的没有联系: js是面向对象的,是运行在浏览器端的编程语言: 主要解决的是前端与用户的交互问题,包括交互数据. 二.js引入 ...
- 关闭安装包更新使用YUM在Linux中(RHEL / CentOS / Fedora)
YUM (Yellowdog Updater Modified) 是一个开源的命令行工具,以及基于图形的软件包管理工具, 用于基于 RPM (RedHat Package Manager) 的 Li ...
- string的 insert
// inserting into a string #include <iostream> #include <string> int main () { std::stri ...
- 模拟一个http 请求的json格式报文,带 rsa 签名操作
一.对需要加密的字符串,定义RsaSignUnsign 类,代码如下: 实现了: 1.实现了生成新的pubkey.pri_key方法: 2.将新生成的keys 写入文件: 3.从文件获取pubkey. ...
- Python 文件操作(1)
今天大佬给了个A文件给我,里面存放了机密数据. 什么机密数据??? 有帅哥的联系方式吗? 赶紧打开来看一下 1.open() 函数基本版 Python大佬有个内置开文件的函数open(), 专门开文件 ...
- layer弹出框中icon数字参数说明
前言icon参数为0,如下代码: layer.msg(}); 运行结果如图: icon参数为1,如下图 icon参数为2,如下图: icon参数为3,如下图: icon参数为4,如下图: icon参数 ...
- 【转】BSON数据格式
原文:https://www.e-learn.cn/content/qita/1999197 ----------------------------------------------------- ...
- ip_srcroute函数
当响应某个分组时,I C M P和标准的运输层协议必须把分组带的任意源路由逆转.逆转源路由是通过i p _ s r c r o u t e保存的路由构造的. 7 7 7 - 7 8 3 i p _ s ...