mybatis比jdbc好在哪里?
从原理来说
//JDBC的步骤,1.加载驱动。2.获取连接。3.执行sql语句。4.处理结果集。5.关闭资源
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn=DrivateManager.getConnection(url,username,password);
java.sql.PrepareStatement st=conn.prepareStatement(sql);
st.setInt(0,1);
st.execute();
java.sql.ResultSet rs=st.getResultSet();
while(rs.next()){
String resultString=getString(columnname);
}
//MyBatis的mapper配置文件
<mapper namespace="com.dao.UserMapper">
<select ifd="getList" resulType="user" parameterType="user">
select * from user
</select>
</mapper>
结论:
- DAO层代码可以通过现有插件直接生成,大大提高编码效率和准确性。
- mybatis已有的连接池管理,缓存管理等所带来的代码性能优势和可靠性。
- 一致的编码风格大大减少代码的沟通成本;
- mybatis提供了一级和二级缓存(需要配置打开),强大的动态sql,自动化的session管理,都比手工维护来的方便和安全。
- 不用重复写resultset到domain的转化了。
- 相似的sql不需要重复写。