从b站学习springcloud,现在进行总结,该总结除去了视频中出现的小错误,对有些易错的地方进行了提醒
b站链接:https://www.bilibili.com/video/av55993157
资料链接:
https://pan.baidu.com/s/1o0Aju3IydKA15Vo1pP4z5w
提取码: 21ru
上一节链接:https://blog.csdn.net/qq_40893824/article/details/106861955
下一节链接:https://blog.csdn.net/qq_40893824/article/details/106870713
下面的内容总结:
JPA hibernate 框架是 JPA 的1个实现,是 无sql语句的 mybatis
类似上1节,新建工程 springmybatis2
1 在 pom 文件中加入代码:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.southwind</groupId>
<artifactId>springmybatis2</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
</project>
2 在 java中创包 com.southwind.entity,其内新建实体类 Student,加入代码:
package com.southwind.entity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
@Data
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String name;
@Column
private double score;
@Column
private Date birthday;
}
@Entity:映射 mysql 数据库中的表,语句用于 hibernate 的实体类
@Id:表示下面的数据类型是主键
@GeneratedValue(strategy = GenerationType.IDENTITY):自增
3 在 southwind 中创包 repository,其内创建接口 StudentRepository,加入代码:
第1次用 JpaRepository 要自动下载很久…
package com.southwind.repository;
import com.southwind.entity.Student;
import org.springframework.data.jpa.repository.JpaRepository;
@Repository
public interface StudentRepository extends JpaRepository<Student,Long> {
public Student getById(Long id);
}
代码就是这么简单!
getById 由 Jpa 自动实现!
4 在 southwind 中 创包 controller,其内创建控制类 StudentHandler,加入代码:
package com.southwind.controller;
import com.southwind.entity.Student;
import com.southwind.repository.StudentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
public class StudentHandler {
@Autowired
private StudentRepository studentRepository;
@PostMapping("/save")
public Student save(@RequestBody Student student){
return studentRepository.save(student);
}
@PutMapping("/update")
public Student update(@RequestBody Student student){
return studentRepository.save(student);
}
@DeleteMapping("/deleteById/{id}")
public void deleteById(@PathVariable("id")long id){
studentRepository.deleteById(id);
}
@GetMapping("/findAll")
public List<Student> findAll(){
return studentRepository.findAll();
}
@GetMapping("/findById/{id}")
public Student findById(@PathVariable("id")long id){
return studentRepository.getById(id);
}
}
5 resources中创建 application.yml
加入代码:
spring:
datasource:
url: jdbc:mysql://localhost:3306/mbtest?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
6 在 southwind 中新建启动类 Application,加入代码:
package com.southwind;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
7 启动 Application,测试
7.1 增加数据 post → http://localhost:8080/save
添加成功!
7.2 修改数据 put → http://localhost:8080/update
修改成功!
7.3 删除数据 deleById → http://localhost:8080/deleteById/8
删除成功!
7.4 按号查找 get → http://localhost:8080/findById/7
查找成功!
上一节链接:https://blog.csdn.net/qq_40893824/article/details/106861955
下一节链接:https://blog.csdn.net/qq_40893824/article/details/106870713