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方法的。