您好,登錄后才能下訂單哦!
今天小編給大家分享一下SpringBoot中怎么使用JPA作為數據持久化框架的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
JPA是Java Persistence API的簡稱,中文名Java持久層API,是JDK 5.0注解或XML描述對象-關系表的映射關系,并將運行期的實體對象持久化到數據庫中。
<!-- spring mvc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mysql 驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- jpa持久層 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
server: port: 8080 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/jpa-demo?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=true&characterEncoding=UTF-8 driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 123456 jpa: hibernate: # 自動創建表 ddl-auto: update
ddl-auto 一共有五個可選值
none: 什么也不做
create:每次加載 hibernate 時都會刪除上一次的生成的表,然后根據你的 model 類再重新來生成新表,哪怕兩次沒有任何改變也要這樣執行,這就是導致數據庫表數據丟失的一個重要原因。
create-drop:每次加載 hibernate 時根據 model 類生成表,但是 sessionFactory 一關閉,表就自動刪除。
update:最常用的屬性,第一次加載 hibernate 時根據 model 類會自動建立起表的結構(前提是先建立好數據庫),以后加載 hibernate 時根據 model 類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到服務器后,表結構是不會被馬上建立起來的,是要等應用第一次運行起來后才會。
validate:每次加載 hibernate 時,驗證創建數據庫表結構,只會和數據庫中的表進行比較,不會創建新表,但是會插入新值。
import lombok.Data; import javax.persistence.*; @Table(name = "sys_user") @Entity @Data public class SysUserDO { /** * 主鍵-自增 */ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(columnDefinition = "varchar(12) comment '用戶名稱'") private String name; @Column(columnDefinition = "varchar(50) comment '郵箱'") private String email; }
@Id,表示該屬性為主鍵字段
@GeneratedValue(strategy = GenerationType.IDENTITY),使用主鍵自增的方式
@Column,指定數據庫字段的屬性,可以設置數據類型,長度、注釋等信息,也可以只寫一個注解,jpa會自動識別
import com.biz.jpa.entity.SysUserDO; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface SysUserRepository extends JpaRepository<SysUserDO, Long> { }
@Repository,表示這是數據訪問層
import com.biz.jpa.dao.SysUserRepository; import com.biz.jpa.entity.SysUserDO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class SysUserService { @Autowired private SysUserRepository sysUserRepository; public SysUserDO saveUser() { SysUserDO sysUser = new SysUserDO(); sysUser.setName("Asurplus"); sysUser.setEmail("123456@qq.com"); sysUserRepository.save(sysUser); return sysUser; } }
我們向 sys_user 表中插入一條數據,由于主鍵自增,我們無需設置主鍵,插入成功后,自增的主鍵會自動回寫到對象中
import com.biz.jpa.entity.SysUserDO; import com.biz.jpa.service.SysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class SysUserController { @Autowired private SysUserService sysUserService; @GetMapping("save") public SysUserDO save() { return sysUserService.saveUser(); } }
訪問:
http://localhost:8080/save
返回:
{"id":1,"name":"Asurplus","email":"123456@qq.com"}
插入成功,并返回了自增的主鍵,Jpa 的集成到這里就完成了,更多 Jpa 的用法需要在實際的項目開發中去探索。
以上就是“SpringBoot中怎么使用JPA作為數據持久化框架”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。