1. 概述
本快速教程將介紹如何在啓用了 JPA 的 Spring Boot 應用程序中使用 SQLite 數據庫的步驟。
Spring Boot 支持一些常用的內存數據庫,但 SQLite 則需要我們做一些額外的配置。
讓我們來了解一下具體需要做什麼。
2. 項目設置
為了説明目的,我們將從一個 Spring Data Rest 應用 我們之前教程中使用的應用開始。
在 pom 文件中,我們需要添加 sqllite-jdbc 依賴項:
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.25.2</version>
</dependency>這個依賴項為我們提供了使用 JDBC 與 SQLite 進行通信所需的組件。
3. SQLite 變體
從 Hibernate 6 開始,支持 SQLite 變體。
我們需要在我們的 pom.xml 中導入:
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-community-dialects</artifactId>
</dependency>
在我們的應用程序屬性中:
spring.jpa.database-platform=org.hibernate.community.dialect.SQLiteDialect
4. 數據源 配置
此外,由於 Spring Boot 默認不提供 SQLite 數據庫的配置支持,因此我們也需要暴露自己的 數據源 Bean:
@Autowired Environment env;
@Bean
public DataSource dataSource() {
final DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getProperty("driverClassName"));
dataSource.setUrl(env.getProperty("url"));
dataSource.setUsername(env.getProperty("user"));
dataSource.setPassword(env.getProperty("password"));
return dataSource;
}最後,我們將配置以下屬性在我們的 persistence.properties 文件中:
driverClassName=org.sqlite.JDBC
url=jdbc:sqlite:memory:myDb?cache=shared
username=sa
password=sa
spring.jpa.database-platform=org.hibernate.community.dialect.SQLiteDialect
hibernate.hbm2ddl.auto=create-drop
hibernate.show_sql=true請注意,為了確保數據庫更新在多個數據庫連接之間可見,我們需要將緩存保持為共享狀態。
因此,在上述配置下,應用程序將啓動並啓動一個內存數據庫,名為 myDb,Spring Data Rest 的其餘配置可以利用它。
5. 結論
在本文中,我們使用了一個示例 Spring Data Rest 應用程序並將其指向一個 SQLite 數據庫。為了實現這一點,我們必須創建一個自定義的 Hibernate 方言。