1.說明
所謂的MyBatis接口綁定,指的是實現創建一個接口后,把mapper.xml 由mybatis 生成接口的實現類,通過調用接口對象就可以獲取mapper.xml 中編寫的sql。在SSM框架中,MyBatis 和Spring 整合時使用的就是這個方案。
2.實現步驟
- 創建一個接口(Interface)
- 創建的接口所在包名和接口名必須與mapper.xml文件中
標簽的namespace屬性值相同 - 接口中方法名和mapper.xml配置文件中標簽的id屬性相同
- 在mybatis.xml全局配置文件中配置
標簽,使得MyBatis進行掃描接口和mapper.xml
3.代碼實現步驟:
- 在mybatis.xml 全局配置文件中
下使用
<mappers>
<package name="com.susu.mapper"/>
</mappers>
- 在com.susu.mapper 下新建接口
public interface LogMapper {
List<Log> selAll();
}
- 在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.多參數實現辦法
- 在接口中聲明方法
List<Log> selByAccInAccout(String accin,String accout);
- 在mapper.xml 中添加
#{}中使用 0,1,2 或param1,param2
<!-- 當多參數時,不需要寫parameterType -->
<select id="selByAccInAccout" resultType="log" >
select * from log where accin=#{0} and accout=#{1}
</select>
5. 可以使用注解方式
- 在接口中聲明方法
List<Log> selByAccInAccout(@Param("accin") String accin123,@Param("accout") String accout3454235);
mybatis 把參數轉換為map 了,其中@Param("key") 參數內容就是map 的value
- 在mapper.xml 中添加
#{} 里面寫@Param(“內容”)參數中內容
<!-- 當多參數時,不需要寫parameterType -->
<select id="selByAccInAccout" resultType="log" >
select * from log where accin=#{accin} and accout=#{accout}
</select>