03、service和serviceImpl
package com.ksd.pug.service;import com.baomidou.mybatisplus.extension.service.IService;import com.ksd.pug.pojo.User;public interface IUserService extends IService<User> {}复制代码package com.ksd.pug.service;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.ksd.pug.mapper.UserMapper;import com.ksd.pug.pojo.User;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Service;@Slf4j@Servicepublic class IUserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {}复制代码04、controller
package com.ksd.pug.controller;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.ksd.pug.config.exception.BusinessException;import com.ksd.pug.config.results.Code;import com.ksd.pug.config.results.Result;import com.ksd.pug.pojo.User;import com.ksd.pug.service.IUserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;@RestController@RequestMapping("/user")public class UserController {@Autowiredprivate IUserService userService;@PostMappingpublic Result save(User user){boolean flag = userService.saveOrUpdate(user);return new Result(flag ? Code.SAVE_OK:Code.SAVE_ERROR);}@PutMappingpublic Result update(User user){boolean flag = userService.updateById(user);return new Result(flag ? Code.UPDATE_OK:Code.UPDATE_ERROR);}@DeleteMapping("/{id}")public Result delete(Integer id){boolean flag = userService.removeById(id);return new Result(flag ? Code.DELETE_OK:Code.DELETE_ERROR);}@GetMapping("/{id}")public Result get(@PathVariable("id")Integer id) throws BusinessException {User user = userService.getById(id);// 模拟出现异常 , 使用条件控制 , 便于测试结果if (id == 10) {throw new BusinessException("查询出错了 , 请重试!",Code.GET_ERROR);}return new Result(null != user ? Code.GET_OK :Code.GET_ERROR,user);}@GetMapping("/{pageNo}/{pageSize}")public Result getAll(@PathVariable Integer pageNo,@PathVariable Integer pageSize){// 1、设置分页Page page = new Page<>(pageNo,pageSize);// 2、设置条件LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();// 3、查询分页返回IPage page1 = userService.page(page, lambdaQueryWrapper);return new Result(null != page1 ? Code.GET_OK :Code.GET_ERROR,page1);}}复制代码Mybatis-Plus的分页失效问题@Configurationpublic class MybatisPlusConfig {/*** 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}}复制代码Mybatis-Plus的创建时间和更新时间回填问题
- 定义个回填配置类
@Slf4j@Component public class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {log.info("start insert fill...");//default MetaObjectHandler setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject)this.setFieldValByName("createTime",new Date(),metaObject);this.setFieldValByName("updateTime",new Date(),metaObject);}@Overridepublic void updateFill(MetaObject metaObject) {this.setFieldValByName("updateTime",new Date(),metaObject);}}复制代码- 在pojo中使用@TableFiled(fill=xxx)指定回填触发方法
package com.ksd.pug.pojo;import com.baomidou.mybatisplus.annotation.*;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.ToString;import java.io.Serializable;import java.util.Date;@Data@AllArgsConstructor@NoArgsConstructor@ToString@TableName("kss_user")public class User implements Serializable {@TableId(type = IdType.AUTO)private Integer id;private String userName;private String password;private String realName;private Integer gender;private Date birthday;@TableField(fill = FieldFill.INSERT)private Date createTime;@TableField(fill = FieldFill.INSERT_UPDATE)private Date updateTime;}复制代码数据库级别的解决方案

文章插图
首先将字段设置为timestamp , 然后设置不是null , 根据当前时间戳更新 , 在这里注意我们的create_time是不根据当前时间戳更新的!这种方式虽然可以但是不建议!
推荐阅读
- 谷歌seo有哪些规则,谷歌排名优化入门教程
- 梅桢|从综艺小透明变成人气网红,他们还能火多久?
- 三年疫情我们经历了什么;从事催收人员一个月后的自述:这几类人的欠款无力偿还,活该
- 数字货币协议链名称有哪些,带你了解数字货币合约入门知识
- 从iphone导出照片的方法有哪些,iphone照片批量导入电脑
- 西洋参能治胃病吗
- 刘亦菲|从刘亦菲的松弛感,揭秘“容貌焦虑”如何一步步操纵女明星
- 古钱币|从零开始了解紫砂壶(三)一把紫砂壶的制作过程的解读
- ipadpro发布时间顺序,新ipadpro什么时候出
- 电影|红极一时,已逝的8位功夫明星,从48岁到89岁,个个都是大咖
