MyBatis之接口綁定方案及多參數傳遞


1.說明

  所謂的MyBatis接口綁定,指的是實現創建一個接口后,把mapper.xml 由mybatis 生成接口的實現類,通過調用接口對象就可以獲取mapper.xml 中編寫的sql。在SSM框架中,MyBatis 和Spring 整合時使用的就是這個方案。

2.實現步驟

  1. 創建一個接口(Interface)
  • 創建的接口所在包名和接口名必須與mapper.xml文件中 標簽的namespace屬性值相同
  • 接口中方法名和mapper.xml配置文件中標簽的id屬性相同
  1. 在mybatis.xml全局配置文件中配置 標簽,使得MyBatis進行掃描接口和mapper.xml

3.代碼實現步驟:

  1. 在mybatis.xml 全局配置文件中 下使用
<mappers>
	<package name="com.susu.mapper"/>
</mappers>
  1. 在com.susu.mapper 下新建接口
public interface LogMapper {
      List<Log> selAll();
}
  1. 在com.susu.mapper 新建一個LogMapper.xml
    注意:
  • namespace 必須和接口的全限定路徑(包名+類名)一致
  • id 值必須和接口中方法名相同
  • 如果接口中方法為多個參數,可以省略parameterType
<mapper namespace="com.susu.mapper.LogMapper">
  <select id="selAll" resultType="log">
    select * from log
  </select>
</mapper>

4.多參數實現辦法

  1. 在接口中聲明方法
List<Log> selByAccInAccout(String accin,String accout);
  1. 在mapper.xml 中添加
    #{}中使用 0,1,2 或param1,param2
<!-- 當多參數時,不需要寫parameterType -->
<select id="selByAccInAccout" resultType="log" >
   select * from log where accin=#{0}	and accout=#{1}
</select>

5. 可以使用注解方式

  1. 在接口中聲明方法
List<Log> selByAccInAccout(@Param("accin") String accin123,@Param("accout") String accout3454235);

mybatis 把參數轉換為map 了,其中@Param("key") 參數內容就是map 的value

  1. 在mapper.xml 中添加
    #{} 里面寫@Param(“內容”)參數中內容
<!-- 當多參數時,不需要寫parameterType -->
<select id="selByAccInAccout" resultType="log" >
   select * from log where accin=#{accin}	and accout=#{accout}
</select>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM