Mybatis中mapper接口里方法重载的实现
生活随笔
收集整理的這篇文章主要介紹了
Mybatis中mapper接口里方法重载的实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
看了網上的很多文章,說mapper接口里不能寫重載方法,感覺這種說法不對,mapper接口是可以實現重載方法的.
實現方法
例如: package mapper;import pojo.User;import java.util.List;public interface UserMapper {List<User> findUsers();List<User> findUsers(int id);}然后在UserMapper.xml中利用Mybatis的動態sql就可以實現.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="mapper.UserMapper"><select id="findUsers" resultType="user">select * from user <where><if test="id != null">id = #{id}</if></where></select> </mapper>這樣就實現了在mapper中寫重載方法
認為不能重載的原因
有很多人認為不能重載的原因在于:
在映射文件中同一個namespace下寫了多個相同的id對應mapper接口中的重載方法,但是由于mybatis查找sql是通過namespace+id的方式,所以出現了不唯一性,導致出錯.故而認為mybatis的mapper中不可以寫重載方法,這種說法我認為是錯誤的.以上僅代表個人實踐得出的觀點,如有錯誤歡迎指正
總結
以上是生活随笔為你收集整理的Mybatis中mapper接口里方法重载的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 律草的功效与作用、禁忌和食用方法
- 下一篇: 关于日志系统显示SLF4J: Faile