1. public void getBookList(String publisher,String author){
  2. Map<String,Object> maps = new HashMap<String, Object>();
  3. maps.put("publisher", publisher);
  4. maps.put("author", author);
  5. this.getListByEntity("getBookList",maps);
  6. }
  1. <select id="getBookList"  resultType="Book">
  2. SELECT * FROM bookinfo
  3. <where>
  4. <if test="publisher != null">
  5. publisher = #{publisher}
  6. </if>
  7. <if test="author != null">
  8. AND author = #{author}
  9. </if>
  10. </where>
  11. </select>

如上写法,是没有问题的,但是当情况变得简单的时候,比如只根据作者查询图书列表的时候,当然我们可以采用和上面相同的处理方法,在方法中将参数封装到map中去。但是当我们直接使用String作为参数来查询时,就需要注意一个问题:

  1. public void getBookList(String author){
  2. this.getListByEntity("getBookListByAuthor",author);
  3. }
  1. <select id="getBookListByAuthor" parameterType="java.lang.String" resultType="Book">
  2. SELECT * FROM bookinfo
  3. <where>
  4. <if test="author != null">
  5. author = #{author}
  6. </if>
  7. </where>
  8. </select>

看似没有问题,当我们运行的时候,报异常了,原因是当我们的参数为String时,在sql语句中#{author} 会去我们传进来的参数调getAuthor()方法获取参数,很明显,String没有对应的方法,所以报错了,那我们这里要如何引用author对象呢,需要采用下面的写法:

如下写法正解

  1. <select id="getBookListByAuthor" parameterType="java.lang.String" resultType="Book">
  2. SELECT * FROM bookinfo
  3. <where>
  4. <if test="_parameter != null">
  5. AND author = #{author}
  6. </if>
  7. </where>
  8. </select>

结论:当mybatis传参为单个参数时,在sql语句中需要使用_parameter 来引用这个参数

最新文章

  1. inno 实现水波特效
  2. paip.http 404错误 的解决
  3. 伸展树(二)之 C++的实现
  4. WinAPI: ExtCreateRegion - 区域变换
  5. epoll 应用
  6. 【Leetcode】Evaluate Reverse Polish Notation JAVA
  7. Codeforces Round #330 (Div. 1) A. Warrior and Archer 贪心 数学
  8. datagrid的基本操作-增删改
  9. tp28xx port pin (open-drain )and (push-pull) 和open collector)
  10. 【NOIP2011提高组】选择客栈
  11. Linux System Programming -- Appendix
  12. 前端面试题整理—JavaScript篇(一)
  13. 解决centos中vsftpd中文乱码
  14. RNA-seq数据综合分析教程 AKAP95
  15. 代码的二次重构(开篇:JDBC连接数据库)
  16. [Visual Studio] 记一次排错:打不开 Nuget 包管理器里的安装package页面,无法 安装 / 恢复 包
  17. Rapid 2D-to-3D conversion——快速2D到3D转换
  18. Tensorflow-slim 学习笔记(一)概述
  19. Kubernetes学习之路(十八)之认证、授权和准入控制
  20. ThinkPHP框架返回插入记录的id号

热门文章

  1. [Python Cookbook] Pandas: Indexing of DataFrame
  2. 【数学】【HAOI2008】【BZOJ1045糖果传递】【BZOJ3293分金币】论数学的重要性
  3. 将本地jar包安装进入maven仓库
  4. 设置并删除Dreamweaver自动生成的_notes文件夹
  5. Word中更新交叉引用
  6. 【转】Cvmat与IplImage的相互转换
  7. win10安装nodejs
  8. 粗谈CDN
  9. 一篇不错的讲解Java异常的文章(转载)----感觉很不错,读了以后很有启发
  10. log4j教程 6、Logger方法