spring-data-jpa:就是和數據庫打交道,進行數據訪問的。
一:步驟:
1.新建一個maven項目,新建一個數據庫(數據庫中可以沒有表)
2.導入相關依賴
3.編寫application.yml文件,添加數用來連接數據庫的相關配置
4.編寫實體類,建立和數據庫的映射關系
5.編寫repository接口,該接口繼承JpaRepository
6.編寫controller層,進行數據庫操作
二:詳細過程如下(附代碼):
1.新建一個maven項目,新建一個數據庫(我這里沒有創建數據表),項目目錄結構和數據庫結構如下
2.導入相關依賴,包括web,JDBC,MySql Driver,Spring Data JPA
1 <dependencies> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-data-jpa</artifactId> 5 </dependency> 6 <dependency> 7 <groupId>org.springframework.boot</groupId> 8 <artifactId>spring-boot-starter-jdbc</artifactId> 9 </dependency> 10 <dependency> 11 <groupId>org.springframework.boot</groupId> 12 <artifactId>spring-boot-starter-web</artifactId> 13 </dependency> 14 15 <dependency> 16 <groupId>mysql</groupId> 17 <artifactId>mysql-connector-java</artifactId> 18 <scope>runtime</scope> 19 </dependency> 20 <dependency> 21 <groupId>org.springframework.boot</groupId> 22 <artifactId>spring-boot-starter-test</artifactId> 23 <scope>test</scope> 24 </dependency> 25 </dependencies>
3.在resources文件夾下新建一個application.yml文件,添加數用來連接數據庫的相關配置,我這里默認數據源是Hikaricp,如果想更改默認數據源,參考鏈接(27條消息) SpringBoot重點詳解--配置數據源_pengjunlee的博客-CSDN博客_springboot配置數據源
1 spring: 2 datasource: 3 url: jdbc:mysql://127.0.0.1:3306/jpa 4 username: root 5 password: 123456 6 driver-class-name: com.mysql.jdbc.Driver 7 type: com.alibaba.druid.pool.DruidDataSource 8 #數據庫的操作配置 9 jpa: 10 hibernate: 11 #更新或者創建數據表 12 ddl-auto: update 13 #如果有sql語句操作會在控制台顯示相應的數據庫操作信息 14 show-sql: true
4.在entity文件夾新建一個User.java類文件,添加和數據庫映射關系的代碼
1 package com.xiaoma.springboot.entity; 2 3 import javax.persistence.*; 4 5 @Entity //告訴JPA這是一個實體類 6 @Table(name = "tbl_user") //建立和數據表的映射關系 7 public class User { 8 @Id //表示這個屬性為主鍵 9 @GeneratedValue(strategy = GenerationType.IDENTITY) //表示這個屬性為自增主鍵 10 private Integer id; 11 12 @Column 13 private String username; 14 private String password; 15 16 public Integer getId() { 17 return id; 18 } 19 20 public void setId(Integer id) { 21 this.id = id; 22 } 23 24 public String getUsername() { 25 return username; 26 } 27 28 public void setUsername(String username) { 29 this.username = username; 30 } 31 32 public String getPassword() { 33 return password; 34 } 35 36 public void setPassword(String password) { 37 this.password = password; 38 } 39 }
5.編寫repository接口,這個接口繼承JpaRepository,現在運行一下程序控制台會輸出如下信息。
1 package com.xiaoma.springboot.repository; 2 3 import com.xiaoma.springboot.entity.User; 4 import org.springframework.data.jpa.repository.JpaRepository; 5 6 //第一個參數是實體類類名,第二個參數是主鍵類型 7 public interface UserRepository extends JpaRepository<User,Integer> { 8 }
6.編寫Controller層,操作數據庫,這里實現插入與查詢功能
1 package com.xiaoma.springboot.controller; 2 3 import com.xiaoma.springboot.entity.User; 4 import com.xiaoma.springboot.repository.UserRepository; 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.web.bind.annotation.GetMapping; 7 import org.springframework.web.bind.annotation.PathVariable; 8 import org.springframework.web.bind.annotation.RestController; 9 10 @RestController 11 public class UserController { 12 @Autowired 13 UserRepository userRepository; 14 15 //通過getUser方法去查詢數據庫中的數據,根據id去查詢 16 @GetMapping("/user/{id}") 17 public User getUser(@PathVariable("id") Integer id){ 18 //因為我們的UserRepository繼承了Repository類 19 //而Repository類就已經給我們實現了很多進行數據庫操作的方法,所以直接去調用這里的方法就行了 20 User user=userRepository.findById(id).orElse(null); 21 return user; 22 } 23 24 //實現插入功能 25 @GetMapping("/user") 26 public User insertUser(User user){ 27 //調用Repository類中的save方法來插入數據 28 User save = userRepository.save(user); 29 return save; 30 } 31 }
7.運行程序,打開瀏覽器輸入localhost:8080/user?id=1&&username=xiaoma&&password=123后數據庫就會新增一條記錄,輸入localhost:8080/user/1就會將剛剛插入的數據顯示出來