Spring Boot 连接 MySQL,MyBatis注解请求

2020年10月15日20:42,重写一遍,加深印象

0、new Spring Starter Project

选择 Spring Boot DevToools、Spring Web、MySQL Driver、MyBatis Framework
在这里插入图片描述

1、配置文件

在配置文件application.properties中连接数据库

# 数据源
# mybatis 是基于 Java 的 SQL 映射框架
# 使用 XML 或者 注解 实现存储过程 或 SQL语句到Java中方法的映射
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/hr?serverTimezone=UTC
spring.datasource.username=hr
spring.datasource.password=hr
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

server.port=9000

logging.level.web=debug

spring.mvc.log-request-details=true

2、数据库

在数据库中创建需要操作的数据库表,放一些初始数据
在这里插入图片描述

3、在包中新建

  1. Staff:(实体类),标准的OOP对象,属性是数据库表中的字段
public class Staff {
	
	private int id;
	private String name;
	private String tel;
	
	public Staff() {
		super();
	}

	public Staff(int id, String name, String tel) {
		super();
		this.id = id;
		this.name = name;
		this.tel = tel;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	@Override
	public String toString() {
		return "Staff [id=" + id + ", name=" + name + ", tel=" + tel + "]";
	}
	
}
  1. StaffMapper:(接口)实现 实体类 到关系数据库 的映射
    • @Mapper 注解整个接口
    • 定义 增 查 更 删 方法,在接口Mapper里只有有返回值
    • 分别为增 查 更 删 用注解@Insert("")、@Select("")、@Update("")、@Delete("") 写业务SQL
    • 为方法写上文档描述
/**
 * Description: 实现 实体Staff 到 关系数据库SQL 的映射
 * 
 * @author young
 * @date 2020年10月15日 下午7:50:34
 */
@Mapper
public interface StaffMapper {

	// CRUD
	
	//查询所有员工
	@Select("select * from staff")
	List<Staff> findAll();
	
	//根据ID 查询员工
	@Select("select * from staff where id=#{id}")
	Staff findById(int id);
	
	//创建一个员工
	@Insert("insert into staff(name, tel) values(#{name}, #{tel})")
	void create(Staff staff);
	
	//更新员工
	@Update("update staff set name=#{name}, tel=#{tel} where id=#{id}")
	void update(Staff staff);
	
	//删除
	@Delete("delete from staff where id=#{id}")
	void delete(int id);
}
  1. StaffController:(实体类控制器类)RESTful 风格的API
    • @RestController、@RequestMappint("/staff") 注解整个类
    • 定义对应StaffMapper接口的 增 查 更 删 public 方法,在实体控制器类里除了有返回值,也有返回值。
    • 分别为 增 查 更 删 用 HTTP 协议中的请求方法 (POST/GET/PUT/DELETE) 改变资源状态,显示在Java代码中就是在各个方法上加注解 @PostMapping、@GetMapping、@PutMapping、@DeleteMapping,以及需要映射的URL
    • 在实体类控制器类中加入 依赖注入:@Autowired
	/**
 * Description: 员工控制器
 * RESTful 风格的API
 * 
 * @author young
 * @date 2020年10月15日 下午8:03:14
 */
@RestController
@RequestMapping("/staff")
public class StaffController {
	
	// 依赖注入
	@Autowired
	StaffMapper staffMapper;
	
	// GET --> '/staff'
	@GetMapping
	public List<Staff> find() {
		return staffMapper.findAll();
	}
	
	// GET --> '/staff/123'
	@GetMapping("/{id}")
	public Staff load(@PathVariable int id) {
		return staffMapper.findById(id);
	}
	
	// POST --> '/staff'
	@PostMapping
	public Staff create(Staff staff) {
		staffMapper.create(staff);
		return staff;
	}
	
	// PUT --> '/staff/123'
	@PutMapping("/{id}")
	public void update(@PathVariable int id, @RequestBody Staff staff) {
		staff.setId(id);
		staffMapper.update(staff);
	}
	
	// DELETE --> '/staff/123'
	@DeleteMapping("/{id}")
	public void delete(@PathVariable int id) {
		staffMapper.delete(id);
	}
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值