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>
    原文作者:suhaha
    原文地址: https://www.cnblogs.com/suhaha/p/11794450.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞