入门
设置工作环境的简单方法是在 Spring Tools 中或从 Spring Initializr 创建一个基于 Spring 的项目。
首先,您需要设置一个运行中的数据库服务器。有关如何配置数据库以进行 JDBC 访问,请参阅您的供应商文档。
要求
Spring Data JDBC 需要 Spring Framework 7.0.0 及更高版本。
在数据库方面,Spring Data JDBC 需要一个 方言 来抽象不同供应商特定风格的通用 SQL 功能。Spring Data JDBC 直接支持以下数据库:
-
DB2
-
H2
-
HSQLDB
-
MariaDB
-
Microsoft SQL Server
-
MySQL
-
Oracle
-
PostgreSQL
如果您使用不同的数据库,您的应用程序将无法启动。方言 部分包含有关在这种情况下如何操作的更多详细信息。
Hello World
在 STS 中创建 Spring 项目
-
转到“文件”→“新建”→“Spring 模板项目”→“简单 Spring 实用工具项目”,并在提示时按“是”。然后输入项目和包名,例如
org.spring.jdbc.example。 -
将以下内容添加到
pom.xml文件的dependencies元素中<dependencies> <!-- other dependency elements omitted --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jdbc</artifactId> <version>4.0.0</version> </dependency> </dependencies> -
将 pom.xml 中的 Spring 版本更改为
<spring.version>7.0.0</spring.version> -
将 Maven 的 Spring Milestone 仓库的以下位置添加到您的
pom.xml中,使其与您的<dependencies/>元素处于同一级别<repositories> <repository> <id>spring-milestone</id> <name>Spring Maven MILESTONE Repository</name> <url>https://repo.spring.io/milestone</url> </repository> </repositories>
该仓库也可以在此处浏览。
日志记录
Spring Data JDBC 本身很少或不进行日志记录。相反,JdbcTemplate 的机制通过发出 SQL 语句来提供日志记录。因此,如果您想检查运行了哪些 SQL 语句,请激活 Spring 的 NamedParameterJdbcTemplate 或 MyBatis 的日志记录。
您可能还需要将日志级别设置为 DEBUG 以查看一些附加信息。为此,请编辑 application.properties 文件,使其包含以下内容
logging.level.org.springframework.jdbc=DEBUG
示例仓库
有一个 包含多个示例的 GitHub 仓库,您可以下载并试用,以了解该库的工作原理。
配置
Spring Data JDBC 仓库支持可以通过 Java 配置中的注解激活,示例如下
@Configuration
@EnableJdbcRepositories (1)
class ApplicationConfig extends AbstractJdbcConfiguration { (2)
@Bean
DataSource dataSource() { (3)
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder.setType(EmbeddedDatabaseType.HSQL).build();
}
@Bean
NamedParameterJdbcOperations namedParameterJdbcOperations(DataSource dataSource) { (4)
return new NamedParameterJdbcTemplate(dataSource);
}
@Bean
TransactionManager transactionManager(DataSource dataSource) { (5)
return new DataSourceTransactionManager(dataSource);
}
}
| 1 | @EnableJdbcRepositories 为派生自 Repository 的接口创建实现。 |
| 2 | AbstractJdbcConfiguration 提供了 Spring Data JDBC 所需的各种默认 bean。 |
| 3 | 创建连接到数据库的 DataSource。这是以下两个 bean 方法所必需的。 |
| 4 | 创建 Spring Data JDBC 用于访问数据库的 NamedParameterJdbcOperations。 |
| 5 | Spring Data JDBC 利用 Spring JDBC 提供的事务管理。 |
前面示例中的配置通过使用 spring-jdbc 的 EmbeddedDatabaseBuilder API 设置了一个嵌入式 HSQL 数据库。然后,DataSource 用于设置 NamedParameterJdbcOperations 和 TransactionManager。我们最终通过使用 @EnableJdbcRepositories 激活 Spring Data JDBC 仓库。如果未配置基本包,它将使用配置类所在的包。扩展 AbstractJdbcConfiguration 确保注册了各种 bean。覆盖其方法可用于自定义设置(见下文)。
通过使用 Spring Boot,此配置可以进一步简化。在 Spring Boot 中,一旦 spring-boot-starter-data-jdbc 启动器包含在依赖项中,一个 DataSource 就足够了。其余的一切都由 Spring Boot 完成。
在此设置中,可能需要自定义一些内容。
方言
Spring Data JDBC 使用 JdbcDialect 接口的实现来封装特定于数据库或其 JDBC 驱动程序的行为。默认情况下,AbstractJdbcConfiguration 尝试通过获取连接并注册正确的 JdbcDialect 来从数据库配置中确定方言。您可以覆盖 AbstractJdbcConfiguration.jdbcDialect(NamedParameterJdbcOperations) 以自定义方言选择。
如果您使用的数据库没有可用的方言,则您的应用程序将无法启动。在这种情况下,您将不得不要求您的供应商提供 JdbcDialect 实现。或者,您可以实现自己的 JdbcDialect。
|
方言由
|