SpringBoot2.3.0配置JPA的實(shí)現(xiàn)示例
JPA顧名思義就是Java Persistence API的意思,是JDK 5.0注解或XML描述對(duì)象-關(guān)系表的映射關(guān)系,并將運(yùn)行期的實(shí)體對(duì)象持久化到數(shù)據(jù)庫(kù)中。
依賴
- spring-boot-starter-data-jdbc
- spring-boot-starter-data-jpa
- mysql-connector-java
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
application.yml
spring.jpa.hibernate.ddl-auto=update
- 如果數(shù)據(jù)庫(kù)內(nèi)沒有表或表結(jié)構(gòu)改變時(shí)根據(jù)Entity創(chuàng)建/更新
spring.jpa.show-sql=true
- 控制臺(tái)打印sql
spring.jpa.database
- 指定數(shù)據(jù)庫(kù)類型,可寫可不寫
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/spring_boot?serverTimezone=GMT%2B8 username: root password: root jpa: hibernate: ddl-auto: update show-sql: true database: mysql
POJO
- @Data是Lombok
- @Entity告訴JPA這是一個(gè)實(shí)體類(和數(shù)據(jù)表映射的類)
- @Table(name = “jpa_user”) 給表起名,不寫默認(rèn)為類名小寫(user)
- @Id設(shè)置主鍵
- @GeneratedValue(strategy = GenerationType.IDENTITY) 使用自增
- @Column(name = “jpa_username”,length = 40) 給列起名,不寫默認(rèn)為屬性名(username)
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "jpa_user")
@Data
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "jpa_username",length = 40)
private String username;
@Column(name = "jpa_password")
private String password;
}
Repository
JpaRepository的繼承關(guān)系

所以繼承JpaRepository
- JpaRepository<T, ID>
- 第一個(gè)泛型就是要操作的Entity
- 第二個(gè)泛型就是Entity的Id主鍵類型
- JpaRepository<User, Integer>
package com.live.repository;
import com.live.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User,Integer> {
}
Controller(測(cè)試)
@Autowired @Autowired UserRepository userRepository;
package com.live.controller;
import com.live.model.User;
import com.live.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Optional;
@RestController
public class UserJPAController {
@Autowired
UserRepository userRepository;
@GetMapping("/findAll")
public List<User> findAll() {
return userRepository.findAll();
}
@GetMapping("/findOne/{id}")
public Optional<User> findOne(@PathVariable(value = "id") Integer id) {
return userRepository.findById(id);
}
@GetMapping("/insert")
public User insertOne(User user) {
return userRepository.save(user);
}
}
測(cè)試
注意:
- 對(duì)字段操作時(shí),使用的是實(shí)體類的屬性名(username,password)
- 而不是在@Column(name=“jpa_username”)設(shè)置的jpa_username
查詢所有

插入

到此這篇關(guān)于SpringBoot2.3.0配置JPA的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)SpringBoot2.3.0配置JPA內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringbootJPA分頁(yè) PageRequest過時(shí)的替代方法
- Springboot+Thymeleaf+Jpa實(shí)現(xiàn)登錄功能(附源碼)
- springboot-jpa的實(shí)現(xiàn)操作
- Springboot JPA 枚舉Enum類型存入到數(shù)據(jù)庫(kù)的操作
- SpringBoot2 Jpa 批量刪除功能的實(shí)現(xiàn)
- springboot 之jpa高級(jí)查詢操作
- SpringBoot2 JPA解決懶加載異常的問題
- SpringBoot2 實(shí)現(xiàn)JPA分頁(yè)和排序分頁(yè)的案例
- 解決springboot無法注入JpaRepository的問題
- SpringBoot JPA使用配置過程詳解
- SpringBoot集成JPA持久層框架,簡(jiǎn)化數(shù)據(jù)庫(kù)操作
相關(guān)文章
解決feignclient調(diào)用服務(wù),傳遞的中文數(shù)據(jù)成???問題
這篇文章主要介紹了解決feignclient調(diào)用服務(wù),傳遞的中文數(shù)據(jù)成???問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
簡(jiǎn)單了解SpringMVC緩存對(duì)靜態(tài)資源有什么影響
這篇文章主要介紹了簡(jiǎn)單了解SpringMVC緩存對(duì)靜態(tài)資源有什么影響,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Java多線程之ReentrantReadWriteLock源碼解析
這篇文章主要介紹了Java多線程之ReentrantReadWriteLock源碼解析,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05

