开始
引导设置工作环境的一种简单方法是在 Spring Tools 中或从 Spring Initializr 创建基于 Spring 的项目。
首先,您需要设置一个正在运行的数据库服务器。 请参阅您的供应商文档,了解如何配置数据库以进行 JDBC 访问。
要求
Spring Data JDBC 需要 Spring Framework 6.2.0 及更高版本。
在数据库方面, 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>3.4.0</version> </dependency> </dependencies>
-
将 Spring 的 pom.xml 版本更改为
<spring.version>6.2.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>
存储库也可以在此处浏览。
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
.
方言的解析方式为
|