一:更改Pom文件,配置maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
二:配置数据库的相关信息
因为我把我的application.properties文件的后缀改为了yml,所以这里的代码很简单
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/student
username: root
password: root
jpa:
hibernate:
ddl-auto: update
show-sql: true;
应该把username和password的值改为自己数据库的用户名和密码
如果是application.properties,则配置数据库的代码为:
spring.datasource.url=jdbc:mysql://localhost:3306/student
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
到这里我们就已经连接好数据库了,此时还没有对数据库进行任何的操作。我们不需要手动为数据库建表,只需要创建实体类就可以。
三:创建实体类
创建的属性会映射为数据库表中的字段
@Entity//实体类注解
public class Student {
@Id
@GeneratedValue //表示id自增
private int id;
private String name;
private int age;
public Student(){}//无参的构造方法
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
写好实体类之后,运行代码然后更新数据库,会发现数据库中多了一张表student,其中的字段就是我们在实体类中创建的变量
四:写二个简单的API例子
请求类型 | 请求路径 | 功能 |
GET | /students | 获取学生列表 |
POST | /students | 创建一个学生 |
1:GET请求
创建一个实体的数据访问层StudentRepositories
public interface StudentRepositories extends JpaRepository<Student ,Integer>{} //Integer为id的类型
创建控制类ControllerStudent
@RestController
public class StudentController {
@Autowired
private StudentRepositories studentRepositories;
@GetMapping(value = "/students")
public List<Student> getStudent(){
return studentRepositories.findAll();
}
}
运行结果为数据库中的信息。
2:POST请求
@PostMapping(value = "/students")
public Student StudentAdd(@RequestParam("name") String name ,@RequestParam("age") Integer age){
Student student=new Student();
student.setName(name);
student.setAge(age);
return studentRepositories.save(student);
}
返回的值为新增进去的对象值。
上面的两个方法是系统自带的,我们也可以自定义方法,只需要在数据访问层的接口中定义方法即可
public interface StudentRepositories extends JpaRepository<Student ,Integer> {
//通过年龄来查询
public List<Student> findByAge(Integer age);
}
注意!!方法名的书写一定要按这个格式来!!!
然后在Controller中调用这个方法即可
/**
* 通过年龄来查询列表,自定以
*/
@GetMapping(value = "/students/age/{age}")
public List<Student> StudentAge(@PathVariable("age") Integer age){
return studentRepositories.findByAge(age);
}