此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data Relational 3.3.4! |
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data Relational 3.3.4! |
引导设置工作环境的一种简单方法是在 Spring Tools 中或从 Spring Initializr 创建基于 Spring 的项目。
首先,您需要设置一个正在运行的数据库服务器。 请参阅您的供应商文档,了解如何配置数据库以进行 JDBC 访问。
要求
Spring Data JDBC 需要 Spring Framework 6.2.0-RC1 及更高版本。
在数据库方面, 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.4.0-M1</version> </dependency> </dependencies>
-
将 Spring 的 pom.xml 版本更改为
<spring.version>6.2.0-RC1</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
在此设置中,可能需要自定义一些内容。
1 | @EnableJdbcRepositories 为派生自Repository |
2 | AbstractJdbcConfiguration 提供了 Spring Data JDBC 所需的各种默认 bean |
3 | 创建与数据库的连接。
这是以下两个 bean 方法所必需的。DataSource |
4 | 创建 Spring Data JDBC 用于访问数据库的 。NamedParameterJdbcOperations |
5 | Spring Data JDBC 利用 Spring JDBC 提供的事务 Management。 |
方言
Spring Data JDBC 使用接口的实现来封装特定于数据库或其 JDBC 驱动程序的行为。
默认情况下, AbstractJdbcConfiguration
尝试通过获取连接并注册正确的 .
您可以覆盖以自定义方言选择。Dialect
Dialect
AbstractJdbcConfiguration.jdbcDialect(NamedParameterJdbcOperations)
如果您使用的数据库没有可用的方言,则您的应用程序将无法启动。
在这种情况下,您必须要求供应商提供实施。
或者,您也可以实施自己的 .Dialect
Dialect
方言由
|
方言由
|