開始使用
要快速啟動並建立工作環境,一個簡單的方法是在 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 Server
-
MySQL
-
Oracle
-
Postgres
如果您使用不同的資料庫,則您的應用程式將無法啟動。方言章節包含在這種情況下如何處理的更多詳細資訊。
Hello World
要在 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>
-
將 pom.xml 中 Spring 的版本更改為
<spring.version>6.2.0</spring.version>
-
將以下 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 使用介面 Dialect
的實作來封裝特定於資料庫或其 JDBC 驅動程式的行為。默認情況下,AbstractJdbcConfiguration
嘗試通過獲取連接並註冊正確的 Dialect
從資料庫組態中確定方言。您可以覆寫 AbstractJdbcConfiguration.jdbcDialect(NamedParameterJdbcOperations)
以自訂方言選擇。
如果您使用的資料庫沒有可用的方言,則您的應用程式將無法啟動。在這種情況下,您必須要求您的供應商提供 Dialect
實作。或者,您可以實作自己的 Dialect
。
方言由
|