案例-修改员工-查询回显&修改员工
查询回显
package com.itheima.controller;
import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import com.itheima.pojo.Result;
import com.itheima.service.EmpService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.time.Period;
import java.util.List;
@Slf4j
@RestController
public class EmpController {
@Autowired
EmpService empService;
/*分页查询*/
@GetMapping("/emps")
public Result page(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "5") Integer pageSize, String name, Short gender, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
log.info("获取参数:页数:{},页面大小:{},姓名:{},性别:{},入职时间区间:{},{}", page, pageSize, name, gender, begin, end);
PageBean pageBean = empService.page(page, pageSize, name, gender, begin, end);
return Result.success(pageBean);
}
/*批量删除员工*/
@DeleteMapping("/emps/{ids}")
public Result delete(@PathVariable List<Integer> ids) {
log.info("批量删除操作:ids:{}", ids);
empService.delete(ids);
return Result.success();
}
/*新增员工*/
@PostMapping("/emps")
public Result insert(@RequestBody Emp emp) {
log.info("新增员工信息:{}", emp);
empService.insert(emp);
return Result.success();
}
/*根据id查询员工*/
@GetMapping("/emps/{id}")
public Result getById(@PathVariable Integer id) {
log.info("根据id查询:id:{}", id);
Emp emp = empService.getById(id);
return Result.success(emp);
}
}
package com.itheima.service;
import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import java.time.LocalDate;
import java.util.List;
public interface EmpService {
/*批量删除员工*/
void delete(List<Integer> ids);
/*分页查询*/
PageBean page(Integer page, Integer pageSiz, String name, Short gender, LocalDate begin, LocalDate end);
/*新增员工*/
void insert(Emp emp);
/*根据id查询员工*/
Emp getById(Integer id);
}
package com.itheima.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.mapper.EmpMapper;
import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import com.itheima.service.EmpService;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@Service
public class EmpServiceImpl implements EmpService {
@Autowired
private EmpMapper empMapper;
/*批量删除员工*/
@Override
public void delete(List<Integer> ids) {
empMapper.delete(ids);
}
/*分页查询*/
@Override
public PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) {
PageHelper.startPage(page, pageSize);
List<Emp> empList = empMapper.list(page, pageSize, name, gender, begin, end);
Page<Emp> p = (Page<Emp>) empList;
return new PageBean(p.getTotal(), p.getResult());
}
/*新增员工*/
@Override
public void insert(Emp emp) {
emp.setCreateTime(LocalDateTime.now());
emp.setUpdateTime(LocalDateTime.now());
empMapper.insert(emp);
}
/*根据id查询员工*/
@Override
public Emp getById(Integer id) {
Emp emp = empMapper.getById(id);
return emp;
}
}
package com.itheima.mapper;
import com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer;
import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.time.LocalDate;
import java.util.List;
@Mapper
public interface EmpMapper {
/*获取总记录数*/
@Select("select count(*) from emp")
Long count();
/*分页查询,获取列表数据*/
@Select("select * from emp limit #{start},#{pageSize}")
List<Emp> page(Integer start, Integer pageSize);
/*批量删除员工*/
void delete(List<Integer> ids);
/*分页查询*/
List<Emp> list(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end);
/*新增员工*/
@Insert("insert into emp (username, name, gender, image, job, entrydate, dept_id, create_time, update_time) value (#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime})")
void insert(Emp emp);
/*根据id查询员工*/
@Select("select * from emp where id =#{id}")
Emp getById(Integer id);
}
修改员工
package com.itheima.controller;
import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import com.itheima.pojo.Result;
import com.itheima.service.EmpService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.time.Period;
import java.util.List;
@Slf4j
@RestController
public class EmpController {
@Autowired
EmpService empService;
/*分页查询*/
@GetMapping("/emps")
public Result page(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "5") Integer pageSize, String name, Short gender, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
log.info("获取参数:页数:{},页面大小:{},姓名:{},性别:{},入职时间区间:{},{}", page, pageSize, name, gender, begin, end);
PageBean pageBean = empService.page(page, pageSize, name, gender, begin, end);
return Result.success(pageBean);
}
/*批量删除员工*/
@DeleteMapping("/emps/{ids}")
public Result delete(@PathVariable List<Integer> ids) {
log.info("批量删除操作:ids:{}", ids);
empService.delete(ids);
return Result.success();
}
/*新增员工*/
@PostMapping("/emps")
public Result insert(@RequestBody Emp emp) {
log.info("新增员工信息:{}", emp);
empService.insert(emp);
return Result.success();
}
/*根据id查询员工*/
@GetMapping("/emps/{id}")
public Result getById(@PathVariable Integer id) {
log.info("根据id查询:id:{}", id);
Emp emp = empService.getById(id);
return Result.success(emp);
}
/*修改员工*/
@PutMapping("/emps")
public Result update(@RequestBody Emp emp){
log.info("修改员工:{}",emp);
empService.update(emp);
return Result.success();
}
}
package com.itheima.service;
import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import java.time.LocalDate;
import java.util.List;
public interface EmpService {
/*批量删除员工*/
void delete(List<Integer> ids);
/*分页查询*/
PageBean page(Integer page, Integer pageSiz, String name, Short gender, LocalDate begin, LocalDate end);
/*新增员工*/
void insert(Emp emp);
/*根据id查询员工*/
Emp getById(Integer id);
/*修改员工*/
void update(Emp emp);
}
package com.itheima.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.mapper.EmpMapper;
import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import com.itheima.service.EmpService;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@Service
public class EmpServiceImpl implements EmpService {
@Autowired
private EmpMapper empMapper;
/*批量删除员工*/
@Override
public void delete(List<Integer> ids) {
empMapper.delete(ids);
}
/*分页查询*/
@Override
public PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) {
PageHelper.startPage(page, pageSize);
List<Emp> empList = empMapper.list(page, pageSize, name, gender, begin, end);
Page<Emp> p = (Page<Emp>) empList;
return new PageBean(p.getTotal(), p.getResult());
}
/*新增员工*/
@Override
public void insert(Emp emp) {
emp.setCreateTime(LocalDateTime.now());
emp.setUpdateTime(LocalDateTime.now());
empMapper.insert(emp);
}
/*根据id查询员工*/
@Override
public Emp getById(Integer id) {
Emp emp = empMapper.getById(id);
return emp;
}
/*修改员工*/
@Override
public void update(Emp emp) {
emp.setUpdateTime(LocalDateTime.now());
empMapper.update(emp);
}
}
package com.itheima.mapper;
import com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer;
import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.time.LocalDate;
import java.util.List;
@Mapper
public interface EmpMapper {
/*获取总记录数*/
@Select("select count(*) from emp")
Long count();
/*分页查询,获取列表数据*/
@Select("select * from emp limit #{start},#{pageSize}")
List<Emp> page(Integer start, Integer pageSize);
/*批量删除员工*/
void delete(List<Integer> ids);
/*分页查询*/
List<Emp> list(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end);
/*新增员工*/
@Insert("insert into emp (username, name, gender, image, job, entrydate, dept_id, create_time, update_time) value (#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime})")
void insert(Emp emp);
/*根据id查询员工*/
@Select("select * from emp where id =#{id}")
Emp getById(Integer id);
/*修改员工*/
void update(Emp emp);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.EmpMapper">
<!--修改员工-->
<update id="update">
update emp
<set>
<if test="username!=null and username!=''">username =#{username},</if>
<if test="password!=null">password=#{password}</if>
<if test="name!=null and name!=''">name=#{name},</if>
<if test="gender!=null">gender=#{gender},</if>
<if test="image!=null and image!=''">image=#{image}</if>
<if test="job!=null">job=#{job},</if>
<if test="entrydate!=null">entrydate=#{entrydate},</if>
<if test="deptId!=null">dept_id=#{deptId},</if>
<if test="updateTime!=null">update_time=#{updateTime}</if>
</set>
where id=#{id}
</update>
<!--批量删除员工-->
<delete id="delete">
delete
from emp
where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
<!--条件分页查询-->
<select id="list" resultType="com.itheima.pojo.Emp">
select *
from emp
<where>
<if test="name!=null and name!=''">name like concat('%', #{name}, '%')</if>
<if test="gender!=null">and gender = #{gender}</if>
<if test="begin!=null and end!=null">and entrydate between #{begin} and #{end}</if>
</where>
</select>
</mapper>