MyBatis 接口绑定方案及多参数传递
- 作用:实现创建一个接口后把mapper.xml由mybatis生成接口的实现类,通过调用接口对象就可以获取 mapper.xml 中编写的 sql
- 后面 mybatis 和 spring 整合时使用的是这个方案
- 实现步骤:
- 创建一个接口
- 接口包名和接口名与 mapper.xml 中namespace相同
- 接口中方法名和 mapper.xml 标签的 id 属性相同
- 在 mybatis.xml 中使用进行扫描接口和 mapper.xml
- 代码实现步骤:
- 在 mybatis.xml 中下使用(之前是<mapper resource…)
<mappers>
<package name="com.buendia.mapper"/>
</mappers>
- 在 com.buendia.mapper 下新建接口 public interface LogMapper { List selAll(); }
- 在 com.buendia.mapper 新建一个 LogMapper.xml
- namespace 必须和接口全限定路径(包名+类名)一致
- id 值必须和接口中方法名相同
- 如果接口中方法为多个参数,可以省略 parameterType
<mapper namespace="com.buendia.mapper.LogMapper">
<select id="selAll" resultType="log">
select * from log
</select>
</mapper>
- 多参数实现办法
- 在接口中声明方法 List selByAccInAccout(String accin,String accout);
- 在 mapper.xml 中添加
- #{}中使用 0,1,2 或 param1,param2
<select id="selByAccInAccout" resultType="log" >
select * from log where accin=#{0} and accout=#{1}
</select>
- 可以使用注解方式
List<Log> selByAccInAccout(@Param("accin") String accin123,@Param("accout") String accout3454235);
<select id="selByAccInAccout" resultType="log" >
select * from log where accin=#{accin} and accout=#{accout}
</select>