springboot內建spring-jpa
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CZlJGNkVmNxkDNhNDZkZGOkZmZmZjY1I2NiZmN5UDZx8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
本文主要内容:
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如下:
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-jpaartifactId>
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方法的。