前面的文章介绍了MyBatis多参数传递的注解、参数默认命名等方式,今天介绍Map的方式。仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://down.51cto.com/data/546809)。

首先修改映射器接口TeacherMapper中的findTeacherByPage方法如下:

//分页查询教师信息
public List<Teacher> findTeacherByPage(Map<String, Object> map);

相应地,这里用到了Map接口,就应该引入此接口:import java.util.Map。

在执行类CollectionDemo中,调用findTeacherByPage方法的相关代码如下:

Map<String, Object> params = new HashMap<String, Object>();
//以name字段升序排序,
params.put("sort", "name");
params.put("dir", "asc");
//查询结果从第0条开始,查询2条记录
params.put("start", 0);
params.put("limit", 2);
//查询职称为教授或副教授的教师
params.put("title", "%教授");
//分页查询教师信息
List<Teacher> teachers = mapper.findTeacherByPage(params);

可以看出,我们先把参数放在了一个Map中,这样我们就可以在相应的SQL语句中以#{…}的形式引用这些参数了。如下所示:

<select id="findTeacherByPage" resultMap="supervisorResultMap"
parameterType="java.util.Map">
select * from teacher where title like #{title}
order by ${sort} ${dir} limit #{start},#{limit}
</select>

与以前一样,在order by子句中应使用${…}的方式。实际上,这里的parameterType="java.util.Map"可以不要。

运行结果如下:

猛戳这里全面系统地学习MyBatis 3

MyBatis技术交流群:188972810,或扫描二维码:


【MyBatis学习笔记】系列之预备篇一:ant的下载与安装

【MyBatis学习笔记】系列之预备篇二:ant入门示例

【MyBatis学习笔记】系列之一:MyBatis入门示例

【MyBatis学习笔记】系列之二:MyBatis增删改示例

【MyBatis学习笔记】系列之三:MyBatis的association示例

【MyBatis学习笔记】系列之四:MyBatis association的两种形式

【MyBatis学习笔记】系列之五:MyBatis与Spring集成示例

【MyBatis学习笔记】系列之六:MyBatis与Spring集成示例续

【MyBatis学习笔记】系列之七:MyBatis一对多双向关联

【MyBatis学习笔记】系列之八:MyBatis MapperScannerConfigurer配置

【MyBatis学习笔记】系列之九:MyBatis collection的两种形式

【MyBatis学习笔记】系列之十:MyBatis日志之Log4j示例

【MyBatis学习笔记】系列之十一:MyBatis多参数传递之注解方式示例

【MyBatis学习笔记】系列之十二:MyBatis多参数传递之默认命名方式示例

【MyBatis学习笔记】系列之十三:MyBatis多参数传递之Map方式示例

【MyBatis学习笔记】系列之十四:MyBatis中的N+1问题

【MyBatis学习笔记】系列之十五:MyBatis多参数传递之混合方式

【MyBatis学习笔记】系列之十六:Spring声明式事务管理示例

【MyBatis学习笔记】系列之十七:MyBatis多对多保存示例

【MyBatis学习笔记】系列之十八:MyBatis多对多关联查询示例

【MyBatis学习笔记】系列之十九:如何在MyBatis-3.2.7中使用Log4j2 rc2

MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO(一)

MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO(二)

MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三相关推荐

  1. MyBatis多参数传递之注解方式示例--转

    原文地址:http://legend2011.blog.51cto.com/3018495/1015003 若映射器中的方法只有一个参数,则在对应的SQL语句中,可以采用#{参数名}的方式来引用此参数 ...

  2. python表单提交的两种方式_Flask框架学习笔记之表单基础介绍与表单提交方式

    本文实例讲述了Flask框架学习笔记之表单基础介绍与表单提交方式.分享给大家供大家参考,具体如下: 表单介绍 表单是HTML页面中负责数据采集功能的部件.由表单标签,表单域和表单按钮组成.通过表单,将 ...

  3. vector 、map 、iterator 之学习笔记

    由于本人要接手一项C++方面 的工作.由于不会C++,不过做过JAVA 以及一些web方面的开发,加之时间比较短.所以需要速成,于是学习笔记也基本都是用代码代替. //范例资源文件 /******** ...

  4. yaml 文件内部使用变量赋值的方式_spring boot 学习笔记5(application.yaml 配置文件)...

    YAML文件格式是Spring Boot支持的一种JSON超集文件格式,相较于传统的Properties配置文件, YAML文件以数据为核心,是一种更为直观且容易被电脑识别的数据序列化格式.appli ...

  5. c++ map 自定义排序_Java学习笔记:Map集合介绍

    在介绍它之前先来看看再API文档中是如何介绍它的,看图片: 由图片可以看出,Map属于双列集合,每次可以添加一对数据,并且这两个数据具有映射关系. 单列集合和双列集合区别 一.Map继承体系 1.Ha ...

  6. python以垂直方式输出_python学习笔记

    Author: maddock Date: 2015-03-15 21:42:01 (暂时没有整理) python json文件处理 #coding:utf-8 importjson#data = [ ...

  7. 《Pro ASP.NET MVC 3 Framework》学习笔记之十三【示例项目SportsStore】

    接着我们添加一个分页功能.修改ProductController,如下所示: public class ProductController : Controller {public int PageS ...

  8. 命令注入_命令注入绕过方式总结 (20210111学习笔记)

    前言 命令注入是web中常见的漏洞之一,由于web应用程序未对用户提交的数据做严格的过滤,导致用户输入可以直接被linux或windows系统当成命令执行,一般都会造成严重的危害. 常用符号 分号(; ...

  9. 分布式文档系统-document id的手动指定与自动生成两种方式解析(来自学习笔记:龙果学院ES课程)

    1.手动指定document id (1)根据应用情况来说,是否满足手动指定document id的前提: 一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据 ...

最新文章

  1. 机器学习笔记7-监督学习
  2. Windows server 2008 处理多用户在登陆时显示问题
  3. CAEmitterLayer实现粒子效果
  4. html浏览器的区别是什么意思,不同浏览器对css的识别有区别吗?
  5. 尤克里里怎么样_尤克里里和吉他区别?尤克里里与吉他相比有什么不可替代的优势...
  6. pytorch torch.optim.Optimizer
  7. android 仿小米秒表,android实现秒表功能
  8. 【微信小程序开发•系列文章七】websocket
  9. scala学习--难点
  10. Nmap局域网主机存活发现
  11. 计算机读研的收获和遗憾
  12. 速腾激光雷达 xavier环境驱动配置踩坑记录
  13. 爬虫练习-荔枝直播(分享页)
  14. xenserver新增试验网卡
  15. 一个http请求的全过程是怎样的?
  16. 快手新人直播需要注意什么,掌握以下几点技巧即可丨国仁网络
  17. 收集大牛的论坛、博客地址,学习网址
  18. 【论文阅读】Learning with Hypergraphs: Clustering, Classification, and Embedding
  19. 山西农信社计算机知识,山西农村信用社考试:计算机知识知识点(二)
  20. RSA密钥证书的生成

热门文章

  1. 用Delphi写扬声器音乐
  2. 27/100. Intersection of Two Linked Lists
  3. Druid 分析报表中的实战(一)
  4. 用PHP写出显示客户端IP与服务器IP的代码
  5. angular 的配置文件的应用
  6. 5904.刺客信条(AC)
  7. 洛谷——P1910 L国的战斗之间谍
  8. Android开发遇到手机无法弹出Toast
  9. 缓存淘汰算法 (http://flychao88.iteye.com/blog/1977653)
  10. mysql的安装真不爽