JPA是什么?
JPA全稱Java Persistence API,是Sun官方提出的Java持久化規范。是JDK 5.0注解或XML描述對象-關系表的映射關系,並將運行期的實體對象持久化到數據庫中。
JPA主要為了簡化現有的Java EE和Java SE應用的對象持久化開發工作和整合ORM技術實現持久化領域的統一。JPA是在充分吸收了現有Hibernate,TopLink,JDO等ORM框架的基礎上發展而來的,具有易於使用,伸縮性強等優點。從目前的開發社區的反應上看,JPA受到了極大的支持和贊揚,其中就包括了Spring與EJB3.0的開發團隊。
Spring Data JPA是什么?
Spring Data JPA是Spring基於ORM框架、JPA規范的基礎上封裝的一套JPA應用框架,底層使用了Hibernate JPA技術來實現的,可以使開發者用極簡的代碼即可實現對數據的訪問和操作。它提供了包括增刪改查等在內的常用功能,且易於擴展!使用Spring Data JPA可以極大提高開發效率。
本篇文章主要講述一下如何使用Spring Boot框架整合Spring Data JPA應用框架,歡迎朋友們關注“Java精選”微信公眾號,每日持續推薦優質文章,下面進入正題。
Spring Data JPA項目
1、Maven構建項目
1)Spring Boot官網:http://start.spring.io/
2)選擇構建工具
Spring Boot官網選擇構建不同類型的項目其選項的各個參數含義可以參考之前寫的“Spring Boot從入門到精通(一)搭建第一個Spring Boot程序”章節,Spring Boot從入門到精通是一整篇系列的文章集,來自於“Java精選”微信公眾號,歡迎感興趣的朋友關注。
Maven構建項目時依賴Spring Data JPA包,本步驟的其他細節參數省略,具體參考如下截圖:


3)點擊“Generate-Crtl+”按鈕下載項目壓縮包,解壓后使用IntelliJ IDEA開發工具,選擇導航欄File->Project Structure… -> + ,導入Maven項目后點擊“OK”,如圖所示:
4)選中右側Maven菜單,執行install命令,等待執行完成(時間太長的話重復執行幾遍試試或者換Maven數據源),如圖所示:
2、修改pom.xml文件
增加MySQL數據庫驅動包,修改完配置文件后需重新執行Maven命令,不然所依賴的包可能會引用無效,具體配置信息如下:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
之前有朋友問為什么不需要指定包?在這里解釋一下。
spring-boot-starter-parenth已經提供了常用的jar包版本,若指定版本號會覆蓋官方推薦版本,使用maven helper查看一下有沒有沖突即可。
3、配置數據源信息
在application.properties配置文件中,增加內容如下:
#數據庫 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dba spring.datasource.username=root spring.datasource.password=123456 spring.jpa.hibernate.ddl-auto=none spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect #端口號 server.port=8080 spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.type=trace spring.jpa.properties.hibernate.use_sql_comments=true spring.jpa.properties.hibernate.jdbc.batch_size=50 logging.level.org.hibernate.type.descriptor.sql=trace
4、編寫BootUser類文件BootUser類實體對應MySQL數據庫表的字段屬性值,具體代碼如下:
package com.yoodb.study.demo05.entity;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name="boot_user")
public class BootUser implements Serializable {
@Id
//strategy=GenerationType.IDENTITY 自增長
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name="id")
private String id;
@Column(name="user_name")
private String name;
@Column(name="detail")
private String detail;
public String getId() {
return id;
}
public void setId(String id) {
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetDetail(){
returndetail;
}
publicvoidsetDetail(Stringdetail){
this.detail=detail;
}
}
5、編寫Repository文件新增UserRepository類文件,具體代碼如下:
package com.yoodb.study.demo05.repository;
import com.yoodb.study.demo05.entity.BootUser;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<BootUser, Integer> {
}
6、編寫單元測試類文件新增UsersDaoImplTest類文件,具體代碼如下:
package com.yoodb.study.demo05;
import com.yoodb.study.demo05.repository.UserRepository;
import com.yoodb.study.demo05.entity.BootUser;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import javax.transaction.Transactional;
@SpringBootTest
public class UsersDaoImplTest {
@Autowired
private UserRepository userRepository;
/**
* 添加用戶
*/
@Test
@Transactional//對於事務提交方式默認回滾
@Rollback(false)//取消自動回滾
publicvoidtestInsertUsers(){
BootUserusers=newBootUser();
users.setName("關注微信公眾號“Java精選”");
users.setDetail("SpringBoot從入門到精通系列文章持續更新中,帶你從入門到精通,玩轉SpringBoot框架。");
this.userRepository.save(users);
}
}
7、單元測試在IntelliJ IDEA運行單元測試時提示錯誤,信息如下:
Error running 'UsersDaoImplTest.testInsertUsers': Failed to resolve org.junit.platform:junit-platform-launcher:1.6.0
問題分析:這是由於IntelliJ試圖在不使用IDEA中配置的Maven settings.xml配置文件的情況下,直接連接至Maven Central倉庫來執行單元測試,但由於個人配置參數導致無法連接成功。解決辦法:在Maven項目中pom.xml文件中增加依賴包,具體配置內容如下:
<dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-launcher</artifactId> <scope>test</scope> </dependency>
再次,執行單元測試即可正常運行。
來源:素文宅博客
轉自:https://blog.yoodb.com/yoodb/article/detail/1574
本文“Spring Boot從入門到精通(九)整合Spring Data JPA應用框架”文章的項目源碼(springboot-study-demo05)地址:https://github.com/yoodb/springboot
到此,關於Spring boot如何整合Spring Data JPA應用框架就完事了,后續會更新關於源碼層次的文章,歡迎大家收藏便於瀏覽。下面大家有時間的話可以試一試,有什么疑問歡迎下方留言。
