springboot支付項目之springboot集成jpa
- 2019 年 10 月 6 日
- 筆記
springboot集成spring-jpa

本文主要內容:
1:spring boot怎麼集成spring-jpa以及第一個jpa查詢示例
如jpa幾個常用註解、lombok註解使用
2:怎麼設置idea中在pom中添加依賴的時候自動聯想。
3:集成過程中遇到的問題及解決.如mysql時區問題、jpa懶載入問題。
我們遵從MVC三層模式,DAO層設計與開發、Service層設計與開發以及Controller層。
我們先來DAO層設計開發,Spring boot項目基礎框架創建這裡就省略。
本文出自:凱哥Java(kaigejava)
《spring boot支付項目》
一:相關jar依賴添加
因為使用到了mysql,在POM.XML文件中引入mysql相關jar及操作資料庫相關的。這裡我們使用的是spring-jpa來操作資料庫。具體jra如下:
<!– mysql 相關的依賴–>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!– jpa相關依賴–>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
在教大家一個idea怎麼在pom文件中輸入坐標時候聯想,如下圖:在輸入atrifactid的時候可以聯想到,如下圖:


操作:file–>settings介面,依次找到:build,execution,Deployment–>Bulid Tools–>maven–>Repositories.如下圖:

點擊更新就可以了。
二:資料庫連接配置。這裡我們使用的是yml格式的。配置如下圖:

spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost/springboot-wxpay?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
jpa:
show-sql: true
說明:
spring.jpa.show-sql=true.這句意思是:列印sql語句。
在url後面添加serverTimeizone=UTC是為了解決時區錯誤的問題。
三:創建實體及測試
3.1:創建ProductCategory實體對象。使用spring-jpa方式:

說明:
@Entity:spring-jpa實體註解
@Data: lombok註解用於自動生產get/set方法的
@Id:jpa的主鍵註解
@GeneratedValue:註解生成策略
3.2:創建repository介面對象

說明:使用jpa的需要繼承Jparepository這個對象(有多個,這裡就用簡單的)
其中泛型,我們查看源碼:

T:實體對象的。也就是我們上面創建的ProductCategory對象
ID:實體對象的ID類型。我們使用的事Integer類型。所以這裡就寫Integer。
四:創建測試類,進行測試:
在IDEA中,創建測試類快捷鍵:選中類名之後,ctrl+shift+t。如下圖:


運行結果:

在控制台上,我們可以看到hibernate列印的sql語句以及列印出查詢的結果。說明springboot繼承jpa成功。
如果出現could not initialize proyx的時候,如下圖錯誤:

在實體上面添加@Proxy(lazy = false)

說明:@ToString 是直接添加toString方法的。