在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的数据已经被删掉了。