假设现在环境已配好,需要使用动态代理的Dao,也被称为mapper
1. 创建接口UserMapper.java
接口和以前一样,正常定义
public interface UserMapper {
public User getUserById(Integer id);
}
2. 创建UserMapper.xml ,用于编写sql映射
注意:
- 在同一包下创建映射文件
- namespace 为接口的全路径
- id 为接口对应的方法
- 输入、输出参数类型要一致
<?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.itheima.mapper.UserMapper">
<select id="getUserById" parameterType="java.lang.Integer" resultType="com.itheima.pojo.User">
select * from user where id = #{id}
</select>
</mapper>
3. 在配置文件中 加载映射
<package name="com.itheima.mapper"/>
在映射文件和接口文件 同一包下时,可使用package配置。
4.测试程序
- 获取session
- 传入mapper接口类,获取mapper
- 调用mapper方法
public class Demo1 {
private SqlSessionFactory factory;
@Before
public void setUp() throws IOException {
String resource = "SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
this.factory = new SqlSessionFactoryBuilder().build(inputStream);
}
public void run1(){
SqlSession session = this.factory.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.getUserById(5);
System.out.println(user);
session.commit();
}