简介:
Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,
1、编写Mapper.xml
2、编写Mapper.java(接口)
3、加载Mapper.xml
4、测试
1、编写Mapper.xml
UserMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sise.mapper.UserMapper">
<!-- 根据id获取用户信息 -->
<select id="findUserById" parameterType="java.lang.Integer" resultType="com.sise.domain.User">
select * from user where id = #{id}
</select>
</mapper>
mapper接口代理实现编写规则:
a. 映射文件中namespace要等于接口的全路径名称
b. 映射文件中sql语句id要等于接口的方法名称
c. 映射文件中传入参数类型要等于接口方法的传入参数类型
d. 映射文件中返回结果集类型要等于接口方法的返回值类型
2、编写Mapper.java(接口)
UserMapper.java:
public interface UserMapper {
public User findUserById(Integer id);
}
3、加载Mapper.xml
SqlMapConfig.xml:
<mappers>
<mapper resource="User.xml"/>
<mapper class="com.sise.mapper.UserMapper"/>
</mappers>
4、测试
UserMapperTest:
public class UserMapperTest {
@Test
public void testUserMapper() throws IOException {
String resource = "SqlMapConfig.xml";
// 通过流的方法将核心配置文件加载进来
InputStream inputStream = Resources.getResourceAsStream(resource);
// 通过核心配置输入流创建会话工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
// 通过会话工厂创建会话
SqlSession openSession = factory.openSession();
// 通过getMapper方法来实例化接口
UserMapper mapper = openSession.getMapper(UserMapper.class);
User user = mapper.findUserById(1);
System.out.println(user);
}
}