一.说明
-
1.增删改查的接口在上编
-
2.前端和Nginx被打包在一个文件, 在课件中, 所以按照文档直接写好接口就可以直接使用了
实现一个接口的流程
- 1.在控制器deptController先定义一个Restful风格的接口, 如更新接口
- 2.在DeptService接口类中定义接口
- 3.在Service接口实现类(DeptServiceImpl)中实现接口
- 4.在接口实现类中调用DAO层的映射类(DeptMapper)中的update方法来更新
- 5.在映射类DeptMapper中,添加update方法,在@Update("注释")的注释中编写SQL进行更新
项目结构
二.代码实现
- 1.控制器
package com.tlias.controller;
import com.tlias.pojo.Dept;
import com.tlias.pojo.Result;
import com.tlias.service.DeptService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.logging.Logger;
@Slf4j
@RestController
public class DeptController {
@Autowired
private DeptService deptService;
@GetMapping("/depts")
public Result list() {
List<Dept> deptList = deptService.list();
return Result.success(deptList);
}
@DeleteMapping("/depts/{id}")
public Result delete(@PathVariable Integer id) {
log.info("根据ID删除部门", id);
deptService.delete(id);
return Result.success();
}
@PostMapping("/depts")
public Result add(@RequestBody Dept dept) {
log.info("新增部门:{}", dept);
deptService.add(dept);
return Result.success();
}
@PutMapping("/depts")
public Result update(@RequestBody Dept dept)
{
deptService.update(dept);
return Result.success();
}
@GetMapping("/depts/{id}")
public Result view(@PathVariable Integer id)
{
Dept dept = deptService.view(id);
return Result.success(dept);
}
}
- 2.服务类
package com.tlias.service;
import com.tlias.pojo.Dept;
import java.util.List;
public interface DeptService {
/**
* 用于查询全部部门
* @return
*/
List<Dept> list();
void delete(Integer id);
void add(Dept dept);
void update(Dept dept);
Dept view(Integer id);
}
- 3.服务实现类
package com.tlias.service.impl;
import com.tlias.mapper.DeptMapper;
import com.tlias.pojo.Dept;
import com.tlias.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
@Service
public class DeptServiceImpl implements DeptService {
// 调用部门管理的Mapper(Service调用DAO层)
@Autowired
private DeptMapper deptMapper;
@Override
public List<Dept> list() {
return deptMapper.list();
}
@Override
public void delete(Integer id) {
deptMapper.deleteById(id);
}
public void add(Dept dept) {
dept.setCreateTime(LocalDateTime.now());
dept.setUpdateTime(LocalDateTime.now());
deptMapper.add(dept);
}
public void update(Dept dept)
{
dept.setUpdateTime(LocalDateTime.now());
deptMapper.update(dept);
}
public Dept view(Integer id)
{
return deptMapper.view(id);
}
}
- 4.DAO映射类
package com.tlias.mapper;
import com.tlias.pojo.Dept;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface DeptMapper {
/**
* 查询全部部门
* @return
*/
@Select("select * from dept")
List<Dept> list();
@Delete("delete from dept where id = #{id}")
void deleteById(Integer id);
@Insert("insert into dept (name, create_time, update_time) VALUES (#{name}, #{createTime}, #{updateTime})")
void add(Dept dept);
@Update("update dept set name = #{name}, update_time = #{updateTime} where id=#{id}")
void update(Dept dept);
@Select("select * from dept where id=#{id}")
Dept view(Integer id);
}