科技新知

快速下戴模版

使用Spring initializr,可以很容易就建立一個以Spring boot starter為底的java project。大家可以使用Spring 官網又或是vscode plugin 快速地建立一個maven或gradle project。筆者較為熟悉maven,就以maven起一個範例。

在使用Spring initializr有幾件事必需要指定的:

  • Spring boot version: 3.x.y 或以上
  • Language: java
  • Group Id: 請選擇有意思的域名,如果你用github,可以選 io.github.yourusername
  • artifactId: 這個範例的名字,例如commandline
  • Packaging type: 本次使用jar,日後若開發web 應用,可以使用war
  • Java version: 17或以上
  • Dependency: Spring Data JPA, Spring Boot DevTools

這次不像過去順利,因為這裏欠缺了Database連線資料,為了方便測試,我們先在pom.xml加入

h2與spring的整合很好。即使用什麼都不設定,直接運行mvn spring-boot:run,都可以成功執行了。但如果可以,在application.properties加入資料庫設定,會方便日後移植到其他常用的資料庫品版牌。

# src/main/resources/application.properties
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:testdb;
spring.datasource.usename=random
spring.datasource.password=random
 

然後我們就可以做靠Spring Data JPA去生資料庫的表 (table)。Spring Data JPA預設使用的是Hibernate。假設,我們有一個表叫APPLE。我們就可以開一個class Apple和一個interface AppleRepo去接它。

// src/main/java/io/github/macauyeah/spring/tutorial/springbootdatabasic/Apple.java@EntitypublicclassApple {
    @IdStringuuid;
    Doubleweight;
	// getter setter
}

// src/main/java/io/github/macauyeah/spring/tutorial/springbootdatabasic/AppleRepo.javapublicinterfaceAppleRepoextendsJpaRepository<Apple, String>{
    // no content here
}
 

注意,因為不同需要,AppleRepo可能繼承不同的XXXRepository,它們大部份都是用來觸發寫入資料庫的指令。而這個也晚除了直接存取Hibnerate EntityManager的需要。

亦因為我們現在用的是h2Database,其實資料表並不存在。我們需要在執行Spring Boot時,同步先建立表,所以在application.properties 加入自動建表的設定。

# src/main/resources/application.properties
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
 

然後在Spring Boot Context的環境下,可以隨時執行寫入的操作。

@AutowiredprivateAppleRepoappleRepo;

	publicvoidsaveApple() {
		Appleapple = newApple();
		apple.setUuid(UUID.randomUUID().toString());
		apple.setWeight(100.0);
		appleRepo.save(apple);
	}
 

Source Code

spring boot data basic

因為h2Database只是用作測試用,所以spring-boot執行完,資料庫就會被刪除。而上述原始碼當中,還附上了一些dump sql的方法,至少可以讓大家驗證己儲存的結果。

馬交野


哪吒之魔童鬧海
破.地獄 加長版
貓貓的奇幻漂流
IMAX with Laser MINECRAFT:我的世界大電影 英語版
快樂到死(4K修復版)
MX4D MINECRAFT:我的世界大電影 英語版
4DX  英語版  MINECRAFT:我的世界大電影
英語版  MINECRAFT:我的世界大電影
4DX    MINECRAFT:我的世界大電影
MINECRAFT:我的世界大電影
劇場版 世界計畫 崩壞的世界與無法歌唱的初音未來
MINECRAFT :我的世界大電影
SEVENTEEN RIGHT HERE WORLD TOUR IN CINEMAS 字幕版
4DX  SEVENTEEN RIGHT HERE WORLD TOUR IN CINEMAS
PUI PUI 天竺鼠車車 電影版 MOLMAX
愛情咀咀咒
摘星廚神:巴黎夢
你的顏色
摘星廚神.巴黎夢
穿越時空の初吻
贖夢
SEVENTEEN RIGHT HERE WORLD TOUR IN CINEMAS
迪士尼《白雪公主》
白雪公主
高空殺機
無痛俠
猴
門逃
4DX  哪吒之魔童鬧海
哪吒之魔童鬧海
破.地獄 加長版