javajava

springBoot的数据库操作

 一:操作数据库起步

1.Spring-Data-Jpa

  JPA定义了对象持久化的标准。

  目前实现了有Hibernate,TopLink

 

2.pom添加依赖

 
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进行配置

 

4.新建一个people的数据库

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

   不然,程序会报未发现数据库。

  但是,表不需要新建,这个通过类就可以生成。

 

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.新建类(继续使用上面的Sytdent.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.效果

Publish Comment发表评论

点击刷新验证码 点击图片可刷新验证码

Comment网友评论

詹绍乾 Jancy © 版权所有 2020

Copyright © 2010 by zhansq.cn All right reserved.