使用 JDBC 进行数据访问
Spring Framework JDBC 抽象提供的价值可能最好通过下表中概述的操作序列来展示。该表显示了 Spring 负责的操作以及您需要负责的操作。
表 1. Spring JDBC - 各方职责
操作 | Spring | 你 |
---|---|---|
定义连接参数。 | X | |
打开连接。 | X | |
指定 SQL 语句。 | X | |
声明参数并提供参数值。 | X | |
准备并运行语句。 | X | |
设置循环以迭代结果(如果有)。 | X | |
为每次迭代执行工作。 | X | |
处理任何异常。 | X | |
处理事务。 | X | |
关闭连接、语句和结果集。 | X |
Spring 框架处理了所有可能使 JDBC 成为一个繁琐 API 的底层细节。
章节摘要
📄️ 选择 JDBC 数据库访问的方法
您可以选择多种方法来构建 JDBC 数据库访问的基础。除了三种风格的 JdbcTemplate,SimpleJdbcInsert 和 SimpleJdbcCall 方法优化了数据库元数据,而 RDBMS 对象风格则提供了一种更面向对象的方法。一旦您开始使用其中一种方法,您仍然可以混合搭配以包含来自不同方法的功能。
📄️ 包层次结构
Spring Framework 的 JDBC 抽象框架由四个不同的包组成:
📄️ 使用 JDBC 核心类来控制基本的 JDBC 处理和错误处理
本节介绍如何使用 JDBC 核心类来控制基本的 JDBC 处理,包括错误处理。内容包括以下主题:
📄️ 控制数据库连接
本节内容包括:
📄️ JDBC 批量操作
大多数 JDBC 驱动程序在对同一个预处理语句进行多次调用时,如果将这些调用批量处理,则可以提供更好的性能。通过将更新分组到批处理中,可以限制与数据库之间的往返次数。
📄️ 使用 SimpleJdbc 类简化 JDBC 操作
SimpleJdbcInsert 和 SimpleJdbcCall 类通过利用可以通过 JDBC 驱动程序检索的数据库元数据,提供了简化的配置。这意味着您需要预先配置的内容更少,尽管如果您希望在代码中提供所有细节,也可以覆盖或关闭元数据处理。
📄️ 将 JDBC 操作建模为 Java 对象
org.springframework.jdbc.object 包含了一些类,这些类可以让你以更加面向对象的方式访问数据库。举个例子,你可以运行查询,并将结果作为一个列表返回,该列表包含业务对象,并将关系型列数据映射到业务对象的属性上。你还可以运行存储过程,以及执行更新、删除和插入语句。
📄️ 参数和数据值处理中的常见问题
Spring Framework 的 JDBC 支持提供的不同方法中,参数和数据值常常会出现一些常见问题。本节将介绍如何解决这些问题。
📄️ 嵌入式数据库支持
org.springframework.jdbc.datasource.embedded 包提供对嵌入式 Java 数据库引擎的支持。原生支持 HSQL、H2 和 Derby。您还可以使用可扩展的 API 插入新的嵌入式数据库类型和 DataSource 实现。
📄️ 初始化数据源
org.springframework.jdbc.datasource.init 包提供了对现有 DataSource 初始化的支持。嵌入式数据库支持为应用程序创建和初始化 DataSource 提供了一种选择。然而,有时您可能需要初始化在某个服务器上运行的实例。