mybatis映射文件#与$的使用,及参数传入规则
mybaits映射文件中使用#与$场景:
<select id="getProviders" resultType="com.lazy.bill.pojo.Provider">
SELECT * FROM provider WHERE 1=1
<if test="providerName != null and providerName != ''">
<!-- 条件中不能使用#{providerName},要使用${providerName} -->
AND providerName like '%${providerName}%'
</if>
</select>
$与#的区别:$是直接将值注入到sql语句中,'%${providerName}%'(传入的参数为lisi),那么这里的语句是:SELECT * FROM provider WHERE 1=1 and providerName like '%lisi%'。#是以字符串的形式注入的,如果这里使用'%#{providerName}%',运行时会出现异常,"'%lisi%'":sql语句:SELECT * FROM provider WHERE 1=1 and providerName like "'%lisi%'",多了一个字符串。这里主要是已经在用了' ',所以里面就应该直接将值注入就好。没有这种情况,其他的都可用#。
接口Mpper与映射文件中的对应:
public interface ProviderMapper{
public List<Provider> getProviders(Provider provider);
}
映射文件中的id是接口的方法名,resultType是接口的返回类型。方法的传入的参数是一个对象,映射文件中的动态获取参数的占位符参数名一定要与对象中的属性一致。传入对象的provider.providerName="lisi";产生的sql语句:SELECT * FROM provider WHERE 1=1 and providerName like '%lisi%'。
mybatis映射文件#与$的使用,及参数传入规则的更多相关文章
- Mybatis映射文件中#取值时指定参数相关规则
Mybatis映射文件中#取值时指定参数相关规则 在#{}中,除了需要的数值外,还可以规定参数的一些其他规则. 例如:javaType,jdbcType,mode(存储过程),numericScale ...
- MyBatis映射文件中用#和$传递参数的特点
在MyBatis映射文件中用#和$传递参数的特点, #是以占位符的形式来传递对应变量的参数值的,框架会对传入的参数做预编译的动作, 用$时会将传入的变量的参数值原样的传递过去,并且用$传递传递参数的时 ...
- Mybatis映射文件完整模板参照
Mybatis映射文件完整模板参照 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE map ...
- SSM实战——秒杀系统之DAO层实体定义、接口设计、mybatis映射文件编写、整合Spring与Mybatis
一:DAO实体编码 1:首先,在src目录下,新建org.myseckill.entity包,用于存放实体类: 2:实体类设计 根据前面创建的数据库表以及映射关系,创建实体类. 表一:秒杀商品表 对应 ...
- MyBatis 映射文件详解
1. MyBatis 映射文件之<select>标签 <select>用来定义查询操作; "id": 唯一标识符,需要和接口中的方法名一致; paramet ...
- MyBatis映射文件 相关操作
一.MyBatis映射文件 1.简介 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行 ...
- Mybatis映射文件标签(关于sql)
Mybatis映射文件 1.接口的全限定名和映射文件的namespace一致 <mapper namespace="com.offcn.dao.UserDao"> 2. ...
- MyBatis 映射文件
Mybatis映射文件简介 1) MyBatis 的真正强大在于它的映射语句.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉 ...
- MyBatis基础入门《八》查询参数传入Map
MyBatis基础入门<八>查询参数传入Map 描述: 在执行select查询数据的时候,方法传入的参数是java.util.Map类型. 接口方法: xml文件 注意: 书写SQL语句的 ...
随机推荐
- 批量找注入 python3+sqlmap结合
注入一直都是用sqlmap 导致本来就不怎么精通的手工注入现在就忘的一干二净 想实战练习 却一时又找不到有注入的网站 于是便有了这篇文章 想找个批量获取域名链接的工具 但都是只是获取域名而 ...
- Podman and Buildah for Docker users
转自:https://developers.redhat.com/blog/2019/02/21/podman-and-buildah-for-docker-users/ I was asked re ...
- Game Development Patterns and Best Practices (John P. Doran / Matt Casanova 著)
https://github.com/PacktPublishing/Game-Development-Patterns-and-Best-Practices https://github.com/m ...
- 创建一个dynamics 365 CRM online plugin (八) - 使用Shared Variables 在plugins 之前传递data
CRM 可以实现plugin之前的值传递. 我们可以使用SharedVariables 把值在plugin之间传递 实现plugins之间的传递非常简单,我们只需要用key value pair来配对 ...
- Kafka win10下启动
启动kafka之前先要启动zookeeper,而kafka里面时自带有zookeeper的,建议独立部署一套zookeeper服务,kafka下的zookeeper启动命令: zookeeper-s ...
- docker 限制container容器使用内存大小,不限制swap
docker update --memory 20g --memory-swap -1 96b14c546d98 参考:https://my.oschina.net/Kanonpy/blog/2209 ...
- css格式
<head> <style>body {color:#000000;font-weight:normal;} .c1{ color: #fff; background-colo ...
- UEditor富文本简单使用
简单使用编辑器UEditor(录入)步骤: 1,下载Ueditor插件(文中使用1.4.3版本),添加js引用. <script src="../js/ueditor/ueditor. ...
- laravel Cache store [] is not defined
去这个网站学习一下也好 https://laravel-china.org/topics/2093/laravel-source-analysis-series-cache#0b2791 如果env ...
- Linux下阅读源代码工具安装
综合他们多篇博客,做一个自己的总结(从0开始,记录过程) 系统:ubuntu 16.04 vim:7.4.1689 内容来源: https://www.cnblogs.com/wangzhe1635 ...