八、接口绑定方案

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();

}

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄