1.JDBC->DbUtils(QueryRunner)->jdbcTemolate: 只是工具,而框架是是整体解决方案。JDBC的流程:
特点:功能简单;sql写在java代码里;硬编码高耦合的方式;
- Hibernate:全自动全映射ORM(Object Relation Mapping)框架;旨在消除sql,HQL.
实际开发中,我们希望:sql语句交给我们开发人员编写,希望sql不失去灵活性。
总结:为什么使用MyBatis. - MyBatis是一个办自动化的持久层框架。
- JDBC:SQL夹在代码里面,耦合度高导致硬编码内伤;维护不易且实际开发需求中sql是有变化的,频繁修改的情况很常见。
- Hibernate和JPA:长难复杂 SQL,对于Hibernate而言处理也不容易;内部自动产生的SQL,不容易做特殊优化;基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难,导致数据库性能下降。
- 对于开发人员而言,核心sql还需要自己优化
- sql和java编码分开,功能边界清晰,一个专注业务,一个专注数据。