zoukankan      html  css  js  c++  java
  • 7月14 Enity对象的抽取

    新增、修改对象时对公共属性进行操作

    操作枚举

    public enum OperatotType {
         /**
         * Create
         */
        Create(1),
    
        /**
         * Update
         */
        Update(2),
    
        /**
         * Delete
         */
        Delete(3),;
    
        Integer value;
    
        OperatotType(Integer value) {
            this.value = value;
        }
    
        public Integer getValue() {
            return value;
        }
    }

    常量枚举

    public enum EntityEnum {
    
        /** 正常 */
        Normal(1),
        
        /** 删除 */
        Deleted(0);
        
        Integer value;

    公共的父类

    public class DTOIsDeleted {
        
        private String createUser;
    
        private Integer isDelete;
    
        private Date createTime;

    工具类

    /*
         * 新增,修改和删除操作时,给公共字段赋值
         */
        public static void setDTO(DTOIsDeleted dto, OperatotType operatotType, String userId) {
    
            Date currentTime = new Date();
    
            if (operatotType == OperatotType.Create) {
                if (EmptyUtils.isNotEmpty(userId)) {
                    dto.setCreateUser(userId);
                }
                dto.setCreateTime(currentTime);
                dto.setIsDelete(EntityEnum.Normal.getValue());
            } else if (operatotType == OperatotType.Update) {
                
                /*
                 *  修改
                 * if (EmptyUtils.isNotEmpty(userId)) {
                    dto.setModifyUser(userId);
                }
                dto.setModifyTime(currentTime);*/
                
            } else if (operatotType == OperatotType.Delete) {
                
                /*
                 * 修改用户没添加
                 * if (EmptyUtils.isNotEmpty(userId)) {
                    dto.setModifyUser(userId);
                }*/
                //dto.setModifyTime(currentTime);
                
                dto.setCreateTime(currentTime);
                dto.setIsDelete(EntityEnum.Deleted.getValue());
            }
        }

    二、测试

    继承公共父类

    public class Car extends DTOIsDeleted {
        
        private Integer id;
    
        private String name;
    
        private String createUser;
    
        private Integer isDelete;
    
        private Date createTime;
    @Controller
    public class OperatoController {
        
        @Autowired
        private OperatoService operatoService;
        
        /** 测试操作 */
        @GetMapping("/operato/add")
        @ResponseBody
        public R add() {
            operatoService.add();
            return R.ok();
        }
        
        /** 测试操作 */
        @GetMapping("/operato/delete/{id}")
        @ResponseBody
        public R delete(@PathVariable("id") int id) {
            operatoService.delete(id);
            return R.ok();
        }

    service

    @Service
    public class OperatoService {
    
        @Autowired
        CarMapper carMapper;
        
        
        public void add() {
            Car car = new Car();
            car.setName("梅赛德斯"+RandomUtils.nextInt());
            CommonUtils.setDTO(car, OperatotType.Create, "123");
            
            carMapper.insert(car);
        }
    
        public void delete(int id) {
            Car car = carMapper.selectByPrimaryKey(id);
            if(car != null){
                CommonUtils.setDTO(car, OperatotType.Delete, "123");
                carMapper.updateByPrimaryKeySelective(car);
            }else{
                System.out.println("没有查询到car");
            }
        }

    结果 字段名应该叫deleted 比较好

  • 相关阅读:
    0817JavaScript--------------循环语句
    MySQL数据库的几种引擎
    spring-boot+mybatisPlus+shiro的集成demo 我用了5天
    Nginx 自定义404、500、502 页面
    论Photoshop的正确安装姿势
    记定位一次多线程数据安全问题
    记服务器被黑客攻击事件(肉鸡)
    Spring-Boot 使用 Jedis 操作 Redis
    JavaScript 中 replace方法 替换所有字符串
    关于图文转换的web工具
  • 原文地址:https://www.cnblogs.com/lyon91/p/9305862.html
Copyright © 2011-2022 走看看