此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data Relational 3.4.0! |
开始
引导设置工作环境的一种简单方法是在 Spring Tools 中或从 Spring Initializr 创建基于 Spring 的项目。
首先,您需要设置一个正在运行的数据库服务器。 请参阅您的供应商文档,了解如何配置数据库以进行 JDBC 访问。
要求
Spring Data JDBC 需要 Spring Framework 6.1.15 及更高版本。
在数据库方面, 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
-
将以下内容添加到 files 元素中:
pom.xml
dependencies
<dependencies> <!-- other dependency elements omitted --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jdbc</artifactId> <version>3.3.7-SNAPSHOT</version> </dependency> </dependencies>
-
将 Spring 的 pom.xml 版本更改为
<spring.version>6.1.15</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 本身几乎不做日志记录。
相反,发出 SQL 语句的机制提供了日志记录。
因此,如果你想检查运行了哪些 SQL 语句,请激活 Spring 的 NamedParameterJdbcTemplate
或 MyBatis 的日志记录。JdbcTemplate
您可能还希望将日志记录级别设置为 view 一些其他信息。
为此,请编辑文件以包含以下内容:DEBUG
application.properties
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 | 创建与数据库的连接。
这是以下两个 bean 方法所必需的。DataSource |
4 | 创建 Spring Data JDBC 用于访问数据库的 。NamedParameterJdbcOperations |
5 | Spring Data JDBC 利用 Spring JDBC 提供的事务 Management。 |
前面示例中的配置类使用 API 设置嵌入式 HSQL 数据库。
然后使用 the 进行设置,并使用 .
最后,我们使用 .
如果未配置基本包,则使用配置类所在的包。
扩展 AbstractJdbcConfiguration
可以确保各种 bean 被注册。
覆盖其方法可用于自定义设置(见下文)。EmbeddedDatabaseBuilder
spring-jdbc
DataSource
NamedParameterJdbcOperations
TransactionManager
@EnableJdbcRepositories
可以使用 Spring Boot 进一步简化此配置。
使用 Spring Boot,一旦 starter 包含在依赖项中,a 就足够了。
其他一切都由 Spring Boot 完成。DataSource
spring-boot-starter-data-jdbc
在此设置中,可能需要自定义一些内容。
方言
Spring Data JDBC 使用接口的实现来封装特定于数据库或其 JDBC 驱动程序的行为。
默认情况下, AbstractJdbcConfiguration
尝试通过获取连接并注册正确的 .
您可以覆盖以自定义方言选择。Dialect
Dialect
AbstractJdbcConfiguration.jdbcDialect(NamedParameterJdbcOperations)
如果您使用的数据库没有可用的方言,则您的应用程序将无法启动。
在这种情况下,您必须要求供应商提供实施。
或者,您也可以实施自己的 .Dialect
Dialect
方言由
|