001 springBoot的數據庫操做

  這篇文章的數據庫操做方式是使用JPA。java

  並且是簡單的說明,更多的介紹,在本標籤下,後續會再說明一些細節。mysql

一:操做數據庫起步web

1.Spring-Data-Jpaspring

  JPA定義了對象持久化的標準。sql

  目前實現了有Hibernate,TopLink數據庫

 

2.pom添加依賴springboot

1         <dependency>
2             <groupId>org.springframework.boot</groupId>
3             <artifactId>spring-boot-starter-data-jpa</artifactId>
4         </dependency>
5 
6         <dependency>
7             <groupId>mysql</groupId>
8             <artifactId>mysql-connector-java</artifactId>
9         </dependency>

 

3.對jps進行配置app

 1 spring:
 2   profiles:
 3     active: dev
 4   datasource:
 5     driver-class-name: com.mysql.jdbc.Driver
 6     url: jdbc:mysql://127.0.0.1:3308/people?useSSL=false
 7     username: root
 8     password: 123456
 9   jpa:
10     hibernate:
11       ddl-auto: create
12     show-sql: true

 

4.新建一個people的數據庫yii

  CREATE DATABASE IF NOT EXISTS yiibaidb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;spring-boot

   否則,程序會報未發現數據庫。

   可是,表不須要新建,這個經過類就能夠生成。

 

5.student的類

  能夠映射成數據庫的字段。

  Entity註解表示:類對應一個數據庫的一個表。

 1 package com.caojun.springboot;
 2 
 3 import javax.persistence.Entity;
 4 import javax.persistence.GeneratedValue;
 5 import javax.persistence.Id;
 6 
 7 @Entity
 8 public class Student {
 9 
10     @Id
11     @GeneratedValue
12     private Integer id;
13     private String name;
14     private Integer age;
15 
16     public Student(){
17 
18     }
19 
20     public Integer getId() {
21         return id;
22     }
23 
24     public void setId(Integer id) {
25         this.id = id;
26     }
27 
28     public String getName() {
29         return name;
30     }
31 
32     public void setName(String name) {
33         this.name = name;
34     }
35 
36     public Integer getAge() {
37         return age;
38     }
39 
40     public void setAge(Integer age) {
41         this.age = age;
42     }
43 }

 

6.自動生成數據庫

  

 

7.注意點

  配置文件的ddi-auto:create

  意思的每次啓動的時候都會把數據庫清空。

  

  ddl-auto:update

  若是沒有表,會自動建立,可是若是裏面有數據,就不會清空數據。

 

二:操做數據的API

1.新建類(繼續使用上面的Student.java類)

 

2.新建接口

1 package com.caojun.springboot;
2 
3 import org.springframework.data.jpa.repository.JpaRepository;
4 
5 public interface StudentResitory extends JpaRepository<Student,Integer> {
6 }

 

3.新建controller類  

查詢數據庫中的全部
 1 package com.caojun.springboot;
 2 
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.web.bind.annotation.GetMapping;
 5 import org.springframework.web.bind.annotation.RestController;
 6 
 7 import java.util.List;
 8 
 9 @RestController
10 public class StudentController {
11 
12     @Autowired
13     private StudentResitory studentResitory;
14 
15     /**
16      * 查詢數據庫中的全部
17      * @return
18      */
19     @GetMapping(value = "/hello")
20     public List<Student> getStuList(){
21         return studentResitory.findAll();
22     }
23 }

 

4.效果

  

 

5.添加一個學生記錄

 1     /**
 2      * 添加一個學生記錄
 3      */
 4     @PostMapping(value = "/hello")
 5     public Student addStu(@RequestParam("name") String name,@RequestParam("age") Integer age){
 6         Student stu=new Student();
 7         stu.setName(name);
 8         stu.setAge(age);
 9         return studentResitory.save(stu);
10     }

 

6.效果

  

  

 

7.查詢一我的,根據id

1 /**
2      * 查詢一個學生,根據字段id
3      */
4     @GetMapping(value = "/hello/{id}")
5     public Student getStu(@PathVariable("id") Integer id){
6         return studentResitory.findOne(id);
7     }

 

8.效果

  

 

 

9.更新

 1 /**
 2      * 更新數據庫
 3      */
 4     @PutMapping(value = "/hello/{id}")
 5     public Student updateStu(@PathVariable("id") Integer id,
 6                              @RequestParam("name") String name,
 7                              @RequestParam("age") Integer age ){
 8         Student stu=new Student();
 9         stu.setId(id);
10         stu.setName(name);
11         stu.setAge(age);
12         return studentResitory.save(stu);
13     }

 

10.效果

  

 

 

11.刪除

1 /**
2      * 刪除數據
3      */
4     @DeleteMapping(value = "/hello/{id}")
5     public void deleteStu(@PathVariable("id") Integer id){
6         studentResitory.delete(id);
7     }

 

12.效果

  

  

 

三:擴展

1.經過年齡還來查詢

 

2.擴展接口

  這個方法名比較有講究。

 1 package com.caojun.springboot;
 2 
 3 import org.springframework.data.jpa.repository.JpaRepository;
 4 
 5 import java.util.List;
 6 
 7 public interface StudentResitory extends JpaRepository<Student,Integer> {
 8     
 9     //根據年齡來查詢數據
10     public List<Student> findByAge(Integer age);
11 }

 

3.程序

1 /**
2      * 根據年齡進行查詢
3      */
4     @GetMapping(value = "/hello/age/{age}")
5     public List<Student> getStuList(@PathVariable("age") Integer age){
6         return studentResitory.findByAge(age);
7     }

 

4.效果

  

相關文章
相關標籤/搜索