跳至主要內容

持久层技术

荒流2020年10月26日大约 2 分钟约 597 字

1. 持久层技术解决方案:

  1. JDBC 技术:Connection, PreparedStatement, ResultSet
  2. Spring 的 JDBCTemplate:Spring 中对 JDBC 的简单封装
  3. Apache 的 DBUtils:和 Spring 的 JDBCTemplate 很像,也是对 JDBC 的简单封装
  4. 以上这些都不是框架:JDBC 是规范,Spring 的 JDBCTemplate 和 Apache 的 DBUtils 都只是工具类。

2. 原始 JDBC 开发存在的问题:

  1. 数据库连接创建、释放频繁,造成系统资源浪费从而影响系统性能;
  2. SQL 语句在代码中硬编码,造成代码不易维护,实际应用中 SQL 变化的可能较大,SQL 变动需要改变 java 代码;
  3. 查询操作时,需要手动将结果集中的数据手动封装到实体中,插入操作时,需要手动将实体的数据设置到 SQL 语句的占位符位置。

3. MyBatis

Mybatis 是一个优秀的基于 Java 的持久层框架,它内部封装了 JDBC,使开发者只需要关注 SQL 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程,它使用了 ORM 思想实现了结果集的封装。

与 Hibernate 相比,Hibernate 的学习成本比较高,而 SQL 语句并不需要开发人员完成,只需要调用相关 API 即可, 这对于开发效率是一个优势,但是缺点是没办法对 SQL 语句进行优化和修改。而 MyBatis 虽然需要开发人员自己配置 SQL 语句,MyBatis 来实现映射关系,但是这样的项目可以适应经常变化的项目需求。所以,使用 MyBatis 的场景是,对 SQL 优化要求比较高,或是项目需求或业务经常变动。