1. 定义与SQL映射文件同名的Mapper接口,并将接口与SQL映射文件放在同一目录下。
在resources下创建与mapper同名的目录。
2. 设置SQL映射文件的namespace属性为Mapper接口全限定名。
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectAll" resultType="com.example.pojo.Emp">
select * from emp;
</select>
</mapper>
3. 在Mapper接口中定义方法,方法名就是SQL映射文件中的id,参数和返回值类型一致。
public interface UserMapper {
List<Emp> selectAll(); // 根据sql语义
}
4. 执行sql
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<Emp> emps = userMapper.selectAll();
运行流程和机制:
通过sqlSession获取Mapper代理对象,找到userMapper的接口,并找到同名映射文件,通过调用同名方法,调用到同名id,再执行对应sql语句。
小tip:
可以使用包扫描的方式加载映射文件:
<mappers>
<!--加载sql映射文件-->
<!-- <mapper resource="com/example/mapper/UserMapper.xml"/>-->
<package name="com.example.mapper"/>
</mappers>