一、接口绑定方案
MyBatis 中, 提供了一套接口绑定方案. 程序员可以提供一个接口, 然后提供对应接口的一个 mapper.xml 文件.
MyBatis 会自动将接口和 xml 文件进行绑定. 实际上就是
MyBatis 会根据接口和对应的 xml 文件创建接口的实现类.换言之, 就是可以得到接口类型的对象, 方便方法的调用.
二、实现方式
2.1定义接口
package com.bjsxt.mapper; import java.util.List; import com.bjsxt.pojo.User; public interface UserMapper {
List<User> selAll(); }
2.2 编写对应接口的映射文件
注意:
a) xml 文件名要和接口名一致
b) namespace 属性必须为接口的全限定路径
c) id 属性必须和接口对应的方法名一致
1 <mapper namespace="com.mapper.UserMapper"> 2 3 <select id="selAll" resultType="User"> 4 5 6 select * from t_user 7 8 </select> 9 10 </mapper>
2.3 在核心配置文件中扫描接口(mybatis.xml)
a) 扫描单个接口, 可以使用 mapper 标签的 class 属性
<mappers> <mapper class="com.bjsxt.mapper.UserMapper" /> </mappers>
b) 当扫描多个接口时, 为简化配置, 可以使用 package 标签, 表示扫描对应包下的所有接口.
<mappers> <package name="com.bjsxt.mapper" /> </mappers>
2.4 应用
在使用时, 可以通过 SqlSession 对象的 getMapper 方法,得到接口的代理对象, 从而可以调用定义好的方法.
@Test public void testBind() { SqlSession session = MyBatisUtil.getSession(); UserMapper mapper = session.getMapper(UserMapper.class); List<User> list = mapper.selAll(); for (User user : list) { System.out.println(user); } session.close(); }