1. mapper代理开发的目的
1. 解决mybatis中的原生编码方式
List<User> employeeList = session.selectList("suibian.selectEmployee");
2. 简化后期执行sql
<mapper resource="com/itheima/mybatis/mapper/UserMapper.xml"/>
2. 使用Mapper代理方式完成
2.1 定义与SQL映射文件同名的Mapper接口,并且将Mapper接口与SQL映射文件放置在同一目录中
2.2 设置SQL映射文件的namespace属性为Mapper接口全限定名
<mapper namespace="com.itheima.mybatis.mapper.UserMapper">
<select id="findAllUsers" resultType="com.itheima.mybatis.pojo.User">
select id, last_name lastName, email, gender
from tb_user
</select>
</mapper>
2.3 在mapper接口中定义方法,方法名就是SQL映射文件中的sql语句的id,并保持参数类型和返回值一致
2.4 通过sqlsession的getMapper方法获取代理mapper
UserMapper userMapper = session.getMapper(UserMapper.class);
2.5 优化点:如果mapper的接口名称和sql映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载
<mappers>
<!-- <mapper resource="com/itheima/mybatis/mapper/UserMapper.xml"/>-->
<package name="com.itheima.mybatis.mapper"/>
</mappers>