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%'。

最新文章

  1. laravel5.1学习(1)--安装
  2. 关于ttserver, mongodb, couchbase. ssdb ,tair, leveldb的一点使用体验
  3. Linux下安装MySQL数据库以及用C语言编程存取数据库
  4. 关于使用digitalocean的vps
  5. WCF上传、下载、删除文件
  6. GString及IntelliJIdea中调试Groovy的操作步骤
  7. 对Java的数据类型和运算符的理解
  8. AngularJS学习篇(十)
  9. lvm快照备份数据库(Mysql5.7)
  10. 版本控制工具之git
  11. Python全栈开发之路 【第四篇】:Python基础之函数
  12. 网页块元素定位建议使用的xpath方式
  13. JavaWeb环境搭建(作业八)
  14. CentOS下mysql数据库常用命令
  15. Java多线程同步集合--并发库高级应用
  16. Java通过JDBC进行简单的增删改查(以MySQL为例)
  17. makefile,让编译更简单
  18. 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)
  19. ehcache配置:使用Spring+SpringMVC+Mybatis或者有shiro
  20. UTC 转本地时间

热门文章

  1. 7 种 join
  2. Ubuntu 16.10的root默认密码设置
  3. 旋转数组的最小数字(JAVA)
  4. ubutu16.04 安装Tenda u12无线网卡驱动
  5. 工控随笔_08_西门子_Win10安装Step7.V5.6中文版授权管理器不能正常启动
  6. CSS Core Technology
  7. ASP.NET页面跳转的三大方法详解
  8. mac下常用命令
  9. 前端-JavaScript练习2
  10. ActiveMQ(下载,启动,java程序中 如何操作)