springBoot整合JPA


1. 初始化項目,引入相關依賴

項目中引入的依賴關系

當中最主要的 spring-boot-starter-data-jpa 包主要依賴如下,可以看到JPA的底層主要是通過hibernate實現的。

2. 創建實體類,利用JPA生成數據表

2.1 編寫實體類,配置好映射關系,從而和數據表進行映射

import javax.persistence.*;

@Entity //聲明實體類,和數據表映射 @Table(name="tb_user") //指定對應數據表,省略的話默認表名為類名小寫 public class User { @Id //聲明為該表主鍵 @GeneratedValue(strategy = GenerationType.IDENTITY) //主鍵自增策略 private Integer id; @Column(name = "first_name",length = 50) //設置列名及長度 private String firstName; @Column private String lastName; private String address; //getter & setter 方法略

2. 編寫Dao接口來操作實體類對應的數據表(Repository)

import com.zang.springboot.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

//繼承JpaRepository來完成對數據庫的操作
public interface UserRepository extends JpaRepository<User,Integer>{

}

3. 配置application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/user_manage?serverTimezone=GMT%2B8
    username: root
    password: 123
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
    #更新或創建數據庫表結構
      ddl-auto: update
    #輸出執行sql
    show-sql: true

啟動Application類,JPA輸出如下sql語句進行表的創建

Hibernate: create table tb_user (id integer not null auto_increment, address varchar(255), first_name varchar(50), last_name varchar(255), primary key (id)) engine=MyISAM

3. 插入查詢測試

新建controller來接收請求

import com.zang.springboot.entity.User;
import com.zang.springboot.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;

@RestController
public class UserController {

    @Autowired
    UserRepository userRepository;

    @GetMapping("/user/{id}")
    public User getUser(@PathVariable("id") Integer id){
        User user = userRepository.findById(id).orElse(null);
        return user;
    }

    //@PostMapping("/user")
    @GetMapping("/user") //為測試方便,通過url傳參,請求應設為Get方式
    public User insertUser(User user){
        User saveUser = userRepository.save(user);
        return saveUser;
    }
}

傳值測試:

后台輸出如下,證明插入成功:

查詢測試:

后台輸出查詢sql如下:

Hibernate: select user0_.id as id1_0_0_, user0_.address as address2_0_0_, user0_.first_name as first_na3_0_0_, user0_.last_name as last_nam4_0_0_ from tb_user user0_ where user0_.id=?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM