Spring boot結合Spring-Data-JPA操作MySQL資料庫
上一節學習了Spring-boot的基本知識,這一節進一步學習一下Spring-boot結合Spring-Data-JPA操作MySQL資料庫。首先介紹JPA:Java Persistence API,定義了一系列物件持久化的標準,是一個標準。
第一步:在配置檔案中引入Spring-Data-JPA和MySQL的依賴
第二步:在yml配置檔案中配置資料庫的地址及相應的jpa。【在我的本地安裝的MySQL中已經建立了資料庫learn】<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
第三步:建立資料庫中表對應的實體類studentspring: server: port:8081 datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/learn username: root password: admin jpa: hibernate: ddl-auto: update # create每次執行都刪除原有表建立新表,update不用每次建立新表 show-sql: true # 列印SQL語句
此時執行程式,資料庫中已經成功建立了一張表Studentpackage com.example.domain; import javax.persistence.Entity; import javax.persistence.Id; import javax.validation.constraints.Min; @Entity public class Student { @Id @Min(value = 20110001, message = "學號不得小於20110001") private int sno; private String name; private String major; public Student(){ } public int getSno() { return sno; } public void setSno(int sno) { this.sno = sno; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } @Override public String toString() { return "Student{" + "sno=" + sno + ", name='" + name + '\'' + ", major='" + major + '\'' + '}'; } }
第四步:資料庫操作
(1)檢視資料庫表
新建StudentRespository介面繼承自JpaRepository,然後在StudentController.java中裝配,並呼叫對應方法即可
package com.example.repository;
import com.example.domain.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface StudentRepository extends JpaRepository<Student, Integer>{
//通過major來選擇學生
public List<Student> findStudentsByMajor(String major);
}
(2)新增一個學生
(3)根據學號查學生資訊
(4)更新學生資訊
(5)刪除學生資訊
(6)通過專業選擇學生,此時在JpaRepository中並沒有對應的介面,所以需要首先在StudentRepository中定義根據專業選擇學生的介面,然後在StudentController中直接呼叫該方法即可
(7)批量新增學生。由於上面的邏輯都不復雜,所以並沒有建立專門的service來處理資料邏輯,因此在這裡,首先建立一個StudentService類,在其中定義好新增學生的方法,然後在StudentController中呼叫即可
(8)對新增的屬性進行驗證,比如在資料庫中插入學生資訊時,學號不得小於“20110001”。
對原始碼做以下修改:
a)在Student實體類的sno屬性上加@Min關鍵字(value為最小值、message為提示資訊);
b)將StudentController.java中的addStudent方法的引數修改為Student物件,這樣可以使物件屬性增多時不用修改此處的程式碼,同時在引數前加@Valid註解,表示對該引數進行驗證,驗證返回的引數BindingResult。
參考資料:http://www.imooc.com/learn/767