由於我們的專案規模很小,所以資料庫直接使用H2資料庫。連接資料庫的方式我習慣用JPA。
H2 是一個輕量級的 Java 嵌入式資料庫,支援 SQL 標準,並且可以在內嵌模式下運行,這意味著你不需要安裝和配置外部的資料庫伺服器即可使用。
Java Persistence API (JPA) 是 Java EE (Enterprise Edition) 規範的一部分,用於管理 Java 對象與關聯式資料庫之間的映射和持久化。JPA 提供了一種簡單且標準化的方式,將 Java 對象(也稱為實體)映射到資料庫中的表格,並提供了一組 API 來執行 CRUD(創建、讀取、更新、刪除)操作。
</dependency>
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.3.232</version>
</dependency>
<!--
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>3.3.3</version>
</dependency>
# H2 的配置
# 指定 H2 資料庫的路徑,資料會寫入指定的檔案
spring.datasource.url=jdbc:h2:file:./data/mydatabase;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.h2.console.settings.web-allow-others=true
# JPA 的配置
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
建立租屋資訊Table的Schema,我目前只需要存儲新刊登的網址即可。
因為我們有設置spring.jpa.hibernate.ddl-auto=update
所以jpa會自動建立schema
package tw.grass.rental_crawler.entity;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.Data;
@Entity
@Data
public class RentalDetail {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String link;
}
執行後,JPA就會幫我們完成table的建立了。
H2的Schema、data都存在我們設定檔案中。
那H2也有提供管理介面,需要另外安裝。
方式為:
前往H2官網下載H2 Console來看DB結構、資料。
安裝好後執行,會自動用瀏覽器打開
需要輸入我們mydatabase.mv.db的路徑
jdbc:h2:file:D:/Project/rental-crawler/data/mydatabase;mv_store=true
及其他們我們設置的資訊
接著就可以看到資料了,我們現在沒資料
今天使用H2跟JPA完成了DB、及Table Schema的建立,明天再來寫資料庫的操作邏輯。