此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data Relational 3.4.4! |
开始
引导设置工作环境的一种简单方法是在 Spring Tools 中或从 Spring Initializr 创建基于 Spring 的项目。
首先,您需要设置一个正在运行的数据库服务器。 请参阅您的供应商文档,了解如何配置数据库以进行 JDBC 访问。
要求
Spring Data JDBC 需要 Spring Framework 7.0.0-M1 及更高版本。
在数据库方面, Spring Data JDBC 需要一种方言来抽象常见的 SQL 功能,而不是供应商特定的风格。 Spring Data JDBC 包括对以下数据库的直接支持:
-
DB2
-
H2 系列
-
HSQLDB 数据库
-
MariaDB的
-
Microsoft SQL 服务器
-
MySQL (MySQL的
-
神谕
-
Postgres
如果您使用其他数据库,则您的应用程序将无法启动。 方言部分包含有关如何在这种情况下进行的更多详细信息。
世界您好
要在 STS 中创建 Spring 项目,请执行以下作:
-
转到 File → New → Spring Template Project → Simple Spring Utility Project,并在出现提示时按 Yes。 然后输入项目和包名称,例如
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-M1</version> </dependency> </dependencies>
-
将 Spring 的 pom.xml 版本更改为
<spring.version>7.0.0-M1</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>
存储库也可以在此处浏览。
Logging
Spring Data JDBC 本身几乎不做日志记录。
相反,的JdbcTemplate
要发出 SQL 语句,请提供日志记录。
因此,如果要检查正在运行的 SQL 语句,请为 Spring 的NamedParameterJdbcTemplate
或 MyBatis 的
您可能还需要将日志记录级别设置为DEBUG
以查看一些其他信息。
为此,请编辑application.properties
file 中包含以下内容:
logging.level.org.springframework.jdbc=DEBUG
示例存储库
有一个 GitHub 存储库,其中包含几个示例,您可以下载并使用这些示例来了解该库的工作原理。
配置
Spring Data JDBC 存储库支持可以通过 Java 配置通过 Comments 激活,如下例所示:
@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 | 创建NamedParameterJdbcOperations 由 Spring Data JDBC 用于访问数据库。 |
5 | Spring Data JDBC 利用 Spring JDBC 提供的事务 Management。 |
前面示例中的配置类使用EmbeddedDatabaseBuilder
API 的spring-jdbc
.
这DataSource
然后用于设置NamedParameterJdbcOperations
以及TransactionManager
.
我们最终使用@EnableJdbcRepositories
.
如果未配置基本包,则使用配置类所在的包。
扩展AbstractJdbcConfiguration
确保注册各种 bean。
覆盖其方法可用于自定义设置(见下文)。
可以使用 Spring Boot 进一步简化此配置。
使用 Spring BootDataSource
就足够了spring-boot-starter-data-jdbc
包含在依赖项中。
其他一切都由 Spring Boot 完成。
在此设置中,可能需要自定义一些内容。
方言
Spring Data JDBC 使用接口的实现Dialect
封装特定于数据库或其 JDBC 驱动程序的行为。
默认情况下,AbstractJdbcConfiguration
尝试通过获取连接并注册正确的Dialect
.
您覆盖AbstractJdbcConfiguration.jdbcDialect(NamedParameterJdbcOperations)
以自定义方言选择。
如果您使用的数据库没有可用的方言,则您的应用程序将无法启动。
在这种情况下,您必须要求供应商提供Dialect
实现。
或者,您也可以实施自己的Dialect
.
方言的解析方式为
|