博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三
阅读量:6221 次
发布时间:2019-06-21

本文共 1114 字,大约阅读时间需要 3 分钟。

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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
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语句中以#{…}的形式引用这些参数了。如下所示:

1
2
3
4
5
<
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"可以不要。

      运行结果如下:

本文转自 NashMaster2011 51CTO博客,原文链接:http://blog.51cto.com/legend2011/1030804,如需转载请自行联系原作者
你可能感兴趣的文章
RubyMine 5 RC 发布,新特性一览
查看>>
云计算里AWS和Azure的探究(4)
查看>>
大年初二帝都紫竹院散步
查看>>
java向图片上写字,两个图片合并的方法
查看>>
C#winform
查看>>
Script:10g中不用EM显示Active Session Count by Wait Class
查看>>
I Think I Need a Houseboat(计算几何,水题)
查看>>
纸上谈兵: 伸展树 (splay tree)
查看>>
[C语言] 文件操作,解压SZB格式中的一段函数片段;
查看>>
hdu 4531(模拟+BFS+DFS)
查看>>
slice的cap存在的原因
查看>>
java Dom(xml序列化及CUP)
查看>>
[Linux] 批量把不规则的Android应用程序命名为[中文_版本号](在无中文名称时命名为英文)...
查看>>
jquery div弹出层方式,显示页面内容
查看>>
函数式编程学习之路(10)
查看>>
TextView --- 内容设置成上下滑动 和 代码设置字体颜色
查看>>
数组距离MST_prim
查看>>
客户传真第四部分 个人理财风险防范8.当心银行汇款引发的诈骗
查看>>
php 事件驱动 消息机制 共享内存
查看>>
分享一个IIS日志分析工具-LogParse
查看>>