概述:java persistence API定義了一些列對象持久化的標準,目前實現這一規範的產品有hibernate、topLink等java
1、pom.xml中添加組件mysql
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-comector-java</artifactId> </dependency>
2、配置數據庫相關信息web
在application.yml中配置(在這裏配置生產環境和開發環境均可以使用)
idea中鍵入spring.datasoure. driver快捷輸入(我也忘了driver前是否加空格了)
datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/dbgril username: root password: root
3、一些數據庫的相關操做
create
每次啓動應用建立一個空表,若數據庫中有同名表則把舊錶刪除後再建立
update
每次啓動應用建立一個表,若是數據庫表中有數據,仍然保留數據
create-drop
應用中止的時候,將數據庫中的表刪除
none
默認的,什麼都不作
Validate
驗證類中的屬性和表結構是否一致,若不一致則報錯
spring: profiles: active: dev datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/dbgril username: root password: root jpa: hibernate: ddl-auto: update show-sql: true
4、對數據的一些操做
PUT請求方式body不能使用form-data,須要使用x-www-form-urlencoded
1. 建立實體類
@Entity 在類名上須要添加該註解
@Id 在id變量上添加該註解聲明主鍵
@GeneratedValue 在id變量上聲明該註解表示自動新增
添加get、set方法以及構造方法
2. 聲明一個接口並繼承JpaRepository<T,ID>
T:實體類的類名
ID:Id的數據類型
import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; public interface GrilRepository extends JpaRepository<Gril,Integer>{ //拓展經過年齡查詢 public List<Gril> findByAge(Integer age); }
3. 創建一個類用 @RestController註解,
使用 @Autowired 將接口類注入(簡單示例)
4.使用對象的方式進行數據庫的交互
建立一個方法使用 Mapping 註解,並在方法內使用jpa提供的數據庫的操做方法
findAll() 查詢全部
findOne(id) 經過id查找一個數據庫對象
delete(id) 經過id刪除一個數據庫對象
save(S s) 新增或者修改
(若是不傳主鍵id進行新增操做;若是傳遞了主鍵id,先在數據庫中根據id查找是否有數據,若是沒有則新增,若是有則修改)
若是遇到修改部分數據的時候,使用對象的方式保存會致使其它的字段賦值爲null
第一種解決方式:使用原生的sql進行更新
第二種解決方式:先進行findOne(id)查找對象,而後set完要更新的字段,最後進行save(gril)更新
5.拓展經過其它變量查詢數據庫值
在接口中定義抽象方法;
public List<Gril> findByAge(Integer age);
附:code示例
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController public class GrilController { @Autowired private GrilRepository grilRepository; //查詢女生列表 @GetMapping(value = "/grils") public List<Gril> girlList(){ List<Gril> list = grilRepository.findAll(); return list; }; //添加一個女生 @PostMapping(value = "/grils") public Gril grilAdd(@RequestParam("cupSize")String cupSize, @RequestParam("age")Integer age){ Gril gril = new Gril(); gril.setCupSize(cupSize); gril.setAge(age); return grilRepository.save(gril); } //經過id查詢一個女生 @GetMapping(value = "/grils/{id}") public Gril grilFindOne(@PathVariable("id") Integer id){ Gril gril = grilRepository.findOne(id); return gril; } //經過id更新一個女生 @PutMapping(value = "/grils/{id}") public Gril grilUpdate(@PathVariable("id")Integer id, @RequestParam("cupSize")String cupSize, @RequestParam("age")Integer age){ Gril gril = new Gril(); gril.setId(id); gril.setCupSize(cupSize); gril.setAge(age); return grilRepository.save(gril); } //經過id刪除一個女生 @DeleteMapping(value = "/grils/{id}") public void grilDlete(@PathVariable("id")Integer id){ grilRepository.delete(id); } //經過年齡查詢 @GetMapping("/grils/age/{age}") public List<Gril> findByAge(@PathVariable(value = "age") Integer age){ return grilRepository.findByAge(age); } }