您的位置:首页 > 编程语言 > Java开发

Java框架spring Boot学习笔记(五):Spring Boot操作MySQL数据库增、删、改、查

2017-11-16 14:46 302 查看
在pom.xml添加一下代码,添加操作MySQL的依赖jar包。

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>


新建dbpeople的一个数据库,用户名root,密码123456



编写生成配置文件application-prod.yml

1 server:
2   port: 8082
3   context-path: /


修改application.yml文件

1 spring:
2   profiles:
3     active: prod
4   datasource:
5     driver-class-name: com.mysql.jdbc.Driver
6     url: jdbc:mysql://localhost:3306/dbpeople?useSSL=true

7  username: root  8  password: 123456  9  jpa: 10  hibernate: 11  ddl-auto: create #update 12 show-sql: true


添加一个people类People.java

1 package com.example.demo;
2
3 import javax.persistence.Entity;
4 import javax.persistence.GeneratedValue;
5 import javax.persistence.Id;
6
7 //@Entity对应数据库中的一个表
8 @Entity
9 public class People {
10
11     //@Id配合@GeneratedValue,表示id自增长
12     @Id
13     @GeneratedValue
14     private Integer id;
15     private String name;
16     private Integer age;
17
18     //必须要有一个无参的构造函数,不然数据库会报错
19     public People() {
20     }
21
22     public Integer getId() {
23         return id;
24     }
25
26     public void setId(Integer id) {
27         this.id = id;
28     }
29
30     public String getName() {
31         return name;
32     }
33
34     public void setName(String name) {
35         this.name = name;
36     }
37
38     public Integer getAge() {
39         return age;
40     }
41
42     public void setAge(Integer age) {
43         this.age = age;
44     }
45 }


添加一个注入类PeopleProperties.java

1 package com.example.demo;
2
3 import org.springframework.boot.context.properties.ConfigurationProperties;
4 import org.springframework.stereotype.Component;
5
6 //获取注入还需要加一个@Component注解,@ConfigurationProperties(prefix = "people")获取前缀是people的配置
7 @Component
8 @ConfigurationProperties(prefix = "people")
9 public class PeopleProperties {
10
11     private String name;
12     private Integer age;
13
14
15     public void setName(String name) {
16         this.name = name;
17     }
18     public void setAge(Integer age) {
19         this.age = age;
20     }
21
22     public String getName() { return name; }
23     public Integer getAge() { return age; }
24 }


编写一个数据库操作自定义接口,定制操作接口,这里只演示定制查询接口

PeopleRepository.java

1 package com.example.demo;
2
3 import org.springframework.data.jpa.repository.JpaRepository;
4
5 import java.util.List;
6
7 public interface PeopleRepository extends JpaRepository<People,Integer> {
8     //通过年龄来查询
9     public List<People> findByAge(Integer age);
10 }


编写数据库操作类,可以进行增、删、改、查等操作。

1 package com.example.demo;
2
3 import org.springframework.beans.factory.annotation.Autowired;
4 import org.springframework.web.bind.annotation.*;
5
6 import java.util.List;
7
8 @RestController
9 public class PeopleController {
10     @Autowired
11     private PeopleRepository peopleRepository;
12
13     /**
14      * 查询数据库中所有列表
15      * @return
16      */
17     @GetMapping(value = "/people")
18     public List<People> girlList(){
19         return peopleRepository.findAll();
20     }
21
22     /**
23      * 增加一个人的数据
24      * @param name
25      * @param age
26      * @return
27      */
28     @PostMapping(value = "/people")
29     public People peopleAdd(@RequestParam("name") String name,
30                             @RequestParam("age") Integer age){
31         People people = new People();
32         people.setName(name);
33         people.setAge(age);
34
35         return peopleRepository.save(people);
36     }
37
38     /**
39      * 查询一个人
40      * @param id
41      * @return
42      */
43     @GetMapping(value = "/people/{id}")
44     public People peopleFindOne(@PathVariable("id") Integer id){
45         return peopleRepository.findOne(id);
46     }
47
48     /**
49      * 修改一个人的数据
50      * @param id
51      * @param name
52      * @param age
53      */
54     @PutMapping(value = "/people/{id}")
55     public People peopleUpdate(@PathVariable("id") Integer id,
56                              @RequestParam("name") String name,
57                              @RequestParam("age") Integer age){
58         People people = new People();
59         people.setId(id);
60         people.setName(name);
61         people.setAge(age);
62
63         return peopleRepository.save(people);
64     }
65
66     /**
67      * 删除一个人的数据
68      * @param id
69      */
70     @DeleteMapping(value = "/people/{id}")
71     public void peopleDelete(@PathVariable("id") Integer id){
72         peopleRepository.delete(id);
73     }
74
75     /**
76      * 通过年龄查询列表
77      * @param age
78      * @return
79      */
80     @GetMapping(value = "/people/age/{age}")
81     public List<People> peopleListByAge(@PathVariable("age") Integer age){
82         return peopleRepository.findByAge(age);
83     }
84 }


运行,使用postman工具发包给运行起来的服务器

增加三条数据







打开数据库可以看到增加了三条数据



通过id查询数据,看到返回id=2的数据



查询年龄age为22的数据列表



可以看到返回两条age=22的数据

修改数据



可以看到id=2的数据修改成了



删除id=2的数据



可以看到id=2的数据已经被删掉了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: