1.传统的dao层实现方式
过去我们的做法:先创建UserDao接口,然后编写UserDaoImpl类实现这个接口,
再在这个实现类中注入jdbcTemplate,或者使用MyBatis那几个语句获得sqlSession然后去调用方法
然而现在我们可以省略实现类的编写,只需要MyBatis提供的代理方式
2.MyBatis提供的代理方式
只需要编写UserMapper接口,不需要再去写实现类,如下:
public interface UserMapper {
List<User> findAll() throws IOException;
User findById(int id);
}
然后在UserMapper.xml映射配置文件中中要注意以下几点:
- namespace要与UserMapper接口的全限定名相同
- sql语句的id要和UserMapper接口对应的方法名想同
- resultType要和UserMapper接口对应方法的返回值全限定名相同
- parameterType要和UserMapper接口对应方法的参数类型全限定名相同
遵循上述规则,我们在UserMapper.xml中进行如下配置:
<mapper namespace="com.lxl.dao.UserMapper">
<select id="findAll" resultType="com.lxl.domain.User">
select * from user
</select>
<select id="findById" resultType="com.lxl.domain.User" parameterType="int">
select * from user where id = #{id}
</select>
</mapper>