Mybatis的Mapper接口的参数,一般是一个对象,但如果不是对象,并且有多个参数的时候呢?我们第一个的想法是把参数封装成一个java.util.Map类型,然后在方法的注释上面写上map的key是什么,但是,这样的做法明显不够直观,不能够一眼看出这个方法的参数是什么,并且,影响到了java方法的多态性(方法名相同,参数数量或类型不同)。下面的方法一和方法二能够解决问题!

DAO层的函数方法

 
1
Public User selectUser(String name,String area);

对应的Mapper.xml

 
1
2
3
<select id="selectUser" resultMap="BaseResultMap">
    select  from user_user_t   where user_name = #{0} and user_area=#{1}
</select>

其中,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。

此方法采用Map传多参数.

Dao层的函数方法

 
1
Public User selectUser(Map paramMap);

对应的Mapper.xml

 
1
2
3
<select id=" selectUser" resultMap="BaseResultMap">
   select  from user_user_t   where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR}
</select>

Service层调用

 
1
2
3
4
5
Private User xxxSelectUser(){
Map paramMap=new hashMap();
paramMap.put(“userName”,”对应具体的参数值”);
paramMap.put(“userArea”,”对应具体的参数值”);
User user=xxx. selectUser(paramMap);}

个人认为此方法不够直观,见到接口方法不能直接的知道要传的参数是什么。

Dao层的函数方法

 
1
Public User selectUser(@Param(“userName”)String name,@Param(“userArea”)String area);

对应的Mapper.xml

 
1
2
3
<select id=" selectUser" resultMap="BaseResultMap">
   select  from user_user_t   where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR}
</select

个人觉得这种方法比较好,能让开发者看到dao层方法就知道该传什么样的参数,比较直观,个人推荐用此种方案

最新文章

  1. 二分法 codevs 1432 总数统计
  2. NoSQL数据库:数据的一致性
  3. cf702D Road to Post Office
  4. GCD中有哪几种Queue?你自己建立过串行Queue吗?背后的线程模型是什么样的
  5. 《高性能JavaScript》的新征程
  6. Java 审查基调
  7. 开地址哈希表(Hash Table)的接口定义与实现分析
  8. egret中三种单利的写法。
  9. Lucene 09 - 什么是Lucene的高亮显示 + Java API实现高亮显示
  10. 初识shell编程
  11. [development][libhtp] libhtp 启用debug模式
  12. 封装 vue 组件的过程
  13. 亲爱的,我是一条Linux运维技术学习路径呀。
  14. CF1064A 【Make a triangle!】
  15. 【redis】3.Spring 集成注解 redis 项目配置使用
  16. python 使用set对列表去重,并保持列表原来顺序
  17. java基础学习总结——GUI编程(一) 还未仔细阅读
  18. FireDAC 接占线导致另一个 hstmt DataSnap
  19. Django跨域解决方法
  20. linux下Samba服务配置

热门文章

  1. Spring Boot 中的同一个 Bug,竟然把我坑了两次!
  2. cs224d---词向量表示
  3. AUTOCAD二次开发-----删除一个图层里面的所有对象
  4. HTML文件上传与下载
  5. QFramework 使用指南 2020(二):下载与版本介绍
  6. 常用高效 Java 工具类总结
  7. Linux下sudo配置
  8. Eclipse配置初始化(自用)
  9. Jmeter 02 Jmeter断言之响应断言
  10. 实战jmeter入门压测接口性能