3.3.8 接口绑定方案
八、接口绑定方案
MyBatis中, 提供了一套接口绑定方案. 程序员可以提供一个接口, 然后提供对应接口的一个mapper.xml文 件 .MyBatis 会自动将接口和 xml 文件进行绑定. 实际上就是MyBatis 会根据接口和对应的 xml 文件创建接口的实现类.换言之, 就是可以得到接口类型的对象, 方便方法的调用.
1. 实现方式
(1) 定义接口
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。package com.bjsxt.mapper;
import java.util.List;
import com.bjsxt.pojo.User;
public interface UserMapper {
List<User> selAll();
}
(2) 编写对应接口的映射文件
注意:
1) xml 文件名要和接口名一致
2) namespace 属性必须为接口的全限定路径
3) id 属性必须和接口对应的方法名一致
<mapper namespace="com.bjsxt.mapper.UserMapper">
<select id="selAll" resultType="User">
select * from t_user
</select>
</mapper>
(3) 在核心配置文件中扫描接口
1) 扫描单个接口 , 可以使用 mapper 标签的 class 属性
<mappers>
<mapper class="com.bjsxt.mapper.UserMapper" />
</mappers>
2) 当扫描多个接口时, 为简化配置, 可以使用 package 标签,表示扫描对应包下的所有接口 .
<mappers>
<package name="com.bjsxt.mapper" />
</mappers>
(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();
}
