回顾DAO层代码,以查询学生表记录数为例,直接使用JDBC和MyBatis查询的两种实现方式的代码如图所示:
Class.forName("com.mysql.jdbc.Driver");
Connection connection=DriverManager.getConnection(url, user, password);
String sql="select count(*) from student";
PreparedStatement pstmt = connection.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
if(rs.next()) {
int count=rs.getInt(1);
}
/******************************分隔线*******************************/
<mapper namespace="com.xyj.dao.StuDao">
<select id="findCount" resultType="int">
select count(1) from student
</select>
</mapper>
用JDBC查询返回的是ResultSet对象,ResultSet往往并不能直接使用,还需要转换成其他封装类型,通过JDBC查询并不能直接得到具体的业务对象。这样,在整个查询过程中就需要做很多重复性的转换工作。
MyBatis框架的优点
- 与JDBC相比,减少了50%以上的代码量
- MyBatis是最简单的持久化框架,小巧并简单易学