对于最新的稳定版本,请使用 Spring Data Relational 3.3.1Spring中文文档

对于最新的稳定版本,请使用 Spring Data Relational 3.3.1Spring中文文档

引导设置工作环境的一种简单方法是在 Spring Tools从 Spring Initializr 创建一个基于 Spring 的项目。Spring中文文档

首先,您需要设置正在运行的数据库服务器。 请参阅供应商文档,了解如何配置数据库以进行 JDBC 访问。Spring中文文档

要求

Spring Data JDBC 需要 Spring Framework 6.1.9 及更高版本。Spring中文文档

在数据库方面,Spring Data JDBC 需要一种方言来抽象常见的 SQL 功能,而不是供应商特定的风格。 Spring Data JDBC 包括对以下数据库的直接支持:Spring中文文档

如果使用其他数据库,则应用程序将无法启动。 方言部分包含有关在这种情况下如何进行的更多详细信息。Spring中文文档

世界您好

要在 STS 中创建 Spring 项目,请执行以下操作:Spring中文文档

  1. 转到“文件”→“新建→ Spring Template Project”→“简单 Spring 实用程序项目”,并在出现提示时按“是”。 然后输入项目和包名称,例如 .org.spring.jdbc.exampleSpring中文文档

  2. 将以下内容添加到 files 元素中:pom.xmldependenciesSpring中文文档

  3. 将以下内容添加到 pom.xml files 元素中:dependenciesSpring中文文档

    <dependencies>
    
      <!-- other dependency elements omitted -->
    
      <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jdbc</artifactId>
        <version>3.2.7</version>
      </dependency>
    
    </dependencies>
  4. 将 Spring in the pom.xml 的版本更改为Spring中文文档

    <spring.version>6.1.9</spring-framework.version>
  5. 将 Maven 的 Spring Milestone 存储库的以下位置添加到您的位置,使其与您的元素处于同一级别:pom.xml<dependencies/>Spring中文文档

    <repositories>
      <repository>
        <id>spring-milestone</id>
        <name>Spring Maven MILESTONE Repository</name>
        <url>https://repo.spring.io/milestone</url>
      </repository>
    </repositories>

存储库也可以在此处浏览Spring中文文档

Logging

Spring Data JDBC 本身几乎不执行任何日志记录。 相反,发出 SQL 语句的机制提供日志记录。 因此,如果要检查正在运行的 SQL 语句,请激活 Spring 的 NamedParameterJdbcTemplateMyBatis 的日志记录。JdbcTemplateSpring中文文档

您可能还希望将日志记录级别设置为查看一些其他信息。 为此,请编辑文件以包含以下内容:DEBUGapplication.propertiesSpring中文文档

logging.level.org.springframework.jdbc=DEBUG

示例存储库

有一个 GitHub 存储库,其中包含多个示例,您可以下载和使用这些示例来了解该库的工作原理。Spring中文文档

配置

Spring Data JDBC 存储库支持可以通过 Java 配置的注释来激活,如以下示例所示:Spring中文文档

使用 Java 配置的 Spring Data JDBC 存储库
@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 用于访问数据库的 JDBC。NamedParameterJdbcOperations
5 Spring Data JDBC 利用 Spring JDBC 提供的事务管理。

前面示例中的配置类使用 API 设置嵌入式 HSQL 数据库。 然后用于设置和 . 最后,我们使用 . 如果未配置基本包,则使用配置类所在的包。 扩展可确保注册各种 Bean。 覆盖其方法可用于自定义设置(见下文)。EmbeddedDatabaseBuilderspring-jdbcDataSourceNamedParameterJdbcOperationsTransactionManager@EnableJdbcRepositoriesAbstractJdbcConfigurationSpring中文文档

通过使用 Spring Boot,可以进一步简化此配置。 使用 Spring Boot,一旦启动器包含在依赖项中,a 就足够了。 其他一切都由 Spring Boot 完成。DataSourcespring-boot-starter-data-jdbcSpring中文文档

在此设置中,可能需要自定义一些内容。Spring中文文档

1 @EnableJdbcRepositories为派生自Repository
2 AbstractJdbcConfiguration提供 Spring Data JDBC 所需的各种默认 Bean
3 创建与数据库的连接。 以下两种 Bean 方法都需要这样做。DataSource
4 创建 Spring Data JDBC 用于访问数据库的 JDBC。NamedParameterJdbcOperations
5 Spring Data JDBC 利用 Spring JDBC 提供的事务管理。

方言

Spring Data JDBC 使用接口的实现来封装特定于数据库或其 JDBC 驱动程序的行为。 默认情况下,尝试通过获取连接并注册正确的 . 您可以覆盖以自定义方言选择。DialectAbstractJdbcConfigurationDialectAbstractJdbcConfiguration.jdbcDialect(NamedParameterJdbcOperations)Spring中文文档

如果使用的数据库没有可用的方言,则应用程序将无法启动。 在这种情况下,您必须要求供应商提供实施。 或者,您可以实现自己的 .DialectDialectSpring中文文档

方言由 DialectResolver 从实例中解析,通常通过检查 . + 你可以让 Spring 通过注册一个实现 . 使用 Spring 的 . 为此,请执行以下操作:JdbcOperationsConnection.getMetaData()JdbcDialectorg.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProviderMETA-INF/spring.factoriesDialectResolverSpringFactoriesLoaderSpring中文文档

  1. 实现你自己的.DialectSpring中文文档

  2. 实现返回 .JdbcDialectProviderDialectSpring中文文档

  3. 通过在下创建资源来注册提供程序,并通过添加一行来执行注册spring.factoriesMETA-INF
    org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider=<fully qualified name of your JdbcDialectProvider>Spring中文文档

方言由 DialectResolver 从实例中解析,通常通过检查 . + 你可以让 Spring 通过注册一个实现 . 使用 Spring 的 . 为此,请执行以下操作:JdbcOperationsConnection.getMetaData()JdbcDialectorg.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProviderMETA-INF/spring.factoriesDialectResolverSpringFactoriesLoaderSpring中文文档

  1. 实现你自己的.DialectSpring中文文档

  2. 实现返回 .JdbcDialectProviderDialectSpring中文文档

  3. 通过在下创建资源来注册提供程序,并通过添加一行来执行注册spring.factoriesMETA-INF
    org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider=<fully qualified name of your JdbcDialectProvider>Spring中文文档