入門
設定工作環境的簡單方法是在 Spring Tools 中或從 Spring Initializr 建立一個基於 Spring 的專案。
首先,您需要設定一個執行中的資料庫伺服器。有關如何配置資料庫以進行 JDBC 訪問,請參閱您的供應商文件。
要求
Spring Data JDBC 需要 Spring Framework 7.0.0 及更高版本。
在資料庫方面,Spring Data JDBC 需要一個 方言 來抽象不同供應商特定風格的通用 SQL 功能。Spring Data JDBC 直接支援以下資料庫:
-
DB2
-
H2
-
HSQLDB
-
MariaDB
-
Microsoft SQL Server
-
MySQL
-
Oracle
-
PostgreSQL
如果您使用不同的資料庫,您的應用程式將無法啟動。方言 部分包含有關在這種情況下如何操作的更多詳細資訊。
Hello World
在 STS 中建立 Spring 專案
-
轉到“檔案”→“新建”→“Spring 模板專案”→“簡單 Spring 實用工具專案”,並在提示時按“是”。然後輸入專案和包名,例如
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</version> </dependency> </dependencies> -
將 pom.xml 中的 Spring 版本更改為
<spring.version>7.0.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>
該倉庫也可以在此處瀏覽。
日誌記錄
Spring Data JDBC 本身很少或不進行日誌記錄。相反,JdbcTemplate 的機制透過發出 SQL 語句來提供日誌記錄。因此,如果您想檢查運行了哪些 SQL 語句,請啟用 Spring 的 NamedParameterJdbcTemplate 或 MyBatis 的日誌記錄。
您可能還需要將日誌級別設定為 DEBUG 以檢視一些附加資訊。為此,請編輯 application.properties 檔案,使其包含以下內容
logging.level.org.springframework.jdbc=DEBUG
示例倉庫
有一個 包含多個示例的 GitHub 倉庫,您可以下載並試用,以瞭解該庫的工作原理。
配置
Spring Data JDBC 倉庫支援可以透過 Java 配置中的註解啟用,示例如下
@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 | 建立 Spring Data JDBC 用於訪問資料庫的 NamedParameterJdbcOperations。 |
| 5 | Spring Data JDBC 利用 Spring JDBC 提供的事務管理。 |
前面示例中的配置透過使用 spring-jdbc 的 EmbeddedDatabaseBuilder API 設定了一個嵌入式 HSQL 資料庫。然後,DataSource 用於設定 NamedParameterJdbcOperations 和 TransactionManager。我們最終透過使用 @EnableJdbcRepositories 啟用 Spring Data JDBC 倉庫。如果未配置基本包,它將使用配置類所在的包。擴充套件 AbstractJdbcConfiguration 確保註冊了各種 bean。覆蓋其方法可用於自定義設定(見下文)。
透過使用 Spring Boot,此配置可以進一步簡化。在 Spring Boot 中,一旦 spring-boot-starter-data-jdbc 啟動器包含在依賴項中,一個 DataSource 就足夠了。其餘的一切都由 Spring Boot 完成。
在此設定中,可能需要自定義一些內容。
方言
Spring Data JDBC 使用 JdbcDialect 介面的實現來封裝特定於資料庫或其 JDBC 驅動程式的行為。預設情況下,AbstractJdbcConfiguration 嘗試透過獲取連線並註冊正確的 JdbcDialect 來從資料庫配置中確定方言。您可以覆蓋 AbstractJdbcConfiguration.jdbcDialect(NamedParameterJdbcOperations) 以自定義方言選擇。
如果您使用的資料庫沒有可用的方言,則您的應用程式將無法啟動。在這種情況下,您將不得不要求您的供應商提供 JdbcDialect 實現。或者,您可以實現自己的 JdbcDialect。
|
方言由
|