zoukankan      html  css  js  c++  java
  • Java 工作

    因工作需要

    由python工程师->java工程师

    也算圆了大学时的梦想

    一、Bean

    // 依赖 mybatis mybatis-plus
    @TableName("tp_abcdr")
    @Data
    @NoArgsConstructor
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public class Abcd implements Serializable {
        // id自增
        @TableId(value = "id", type = IdType.AUTO)
        private Integer id;
        // 时间
        @TableField(fill = FieldFill.INSERT)
        private Date createTime;
        // 时间戳时间
      @TableField(fill = FieldFill.INSERT_UPDATE)
        private Long edittime;
        // 该数据库中 不存在 这个字段 
        @TableField(exist=false)
        private Byte[] feature;
        // 更新时间
        @TableField(fill = FieldFill.INSERT_UPDATE)
        private Date updateTime;
        /**
         * 是否删除  0 :删除  1:正常
         */
        @TableLogic
        private Integer isdel;
        // 必填字段
        @NotNull(message = "图片地址必填")
        private String imgAddress;
        // range 取值范围
        @NotNull(message = "异常状态不能为空")
        @Range(min = 0, max = 1, message = "异常状态值不存在")
        private Integer errorStatus;
        // 大小
        @Size(max = 2000, message = "异常备注长度不得超过2000个字符")
        private String remark;
       // 正则表达式
       @NotNull(message = "工人身份证不能为空")
       @Pattern(regexp = "(^[1-9]$)", message = "格式不正确")
       private String idNumber;
    @TableField(fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
      @Value("${hat.broadcast.fileName}")
    private String fileName;
    }

    二、枚举

    @Getter
    @AllArgsConstructor
    public enum HandleTypeEnum implements CodeEnum{
        /**
         * 未处理
         */
        UNTREATED(0, "未处理"),
        /**
         * 已处理
         */
        PROCESSED(1, "已处理"),
        ;
        private Integer code;
        private String message;
    }

     三、@JsonInclude(Include.NON_NULL)

    https://www.cnblogs.com/-xuzhankun/p/8034179.html

    四、mybatis-plus

     @Update("updatehours set site_name=#{siteName} where site_id=#{siteId}")
        public int updateSectionHouesSiteName(@Param("siteName") String siteName, @Param("siteId") String siteId);

     五、逻辑思路

    1、创建表

    2、根据数据库创建Bean

    @TableName("表名")
    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @NoArgsConstructor
    public class Banner implements Serializable {
    }

    3、创建Mapper

    @Mapper
    public interface BannerMapper extends BaseMapper<Banner> {
    
    }

    4、创建Service接口

    public interface BannerService extends IService<Banner> {
    
        /**
         * 新增banner图
         */
        boolean add(Banner banner);
    
        /**
         * 查询banner集合
         */
        List<Banner> query(Integer siteId);
    
        /**
         * 编辑banner图
         */
        boolean edit(Banner banner);
    
        /**
         * 软删banner图
         */
        boolean del(Integer id);
    
        /**
         * 查询banner详情
         */
        Banner queryById(Integer id);
    
    }

    5、实现Service的接口,可能数量不够

    @Service
    @Slf4j
    public class BannerServiceImpl extends ServiceImpl<BannerMapper, Banner> implements BannerService {
    
        @Resource
        private RedisService redisService;
        @Resource
        private CabinetSyncService cabinetSyncService;
        @Resource
        private EncodeDeviceService encodeDeviceService;
    
        /**
         * 新增banner数据
         */
        @Override
        @Transactional(rollbackFor = Exception.class)
        public boolean add(Banner banner) {
        }
    
        /**
         * 获取banner集合
         */
        @Override
        public List<Banner> query(Integer siteId) {
        }
    
        /**
         * 编辑banner数据
         */
        @Override
        @Transactional(rollbackFor = Exception.class)
        public boolean edit(Banner banner) {
        }
    
        /**
         * 根据id删除banner数据
         */
        @Override
        @Transactional(rollbackFor = Exception.class)
        public boolean del(Integer id) {
        }
    
        @Override
        public Banner queryById(Integer id) {
            return selectById(id);
        }

    6、实现Controller

    @Controller
    @RequestMapping("/pc/banner")
    public class BannerController {
    
    
        @Autowired
        private BannerService bannerService;
    
    
        @LogDetail(describe = "新增banner图")
        @PostMapping(value = "/add")
        @ResponseBody
        public Object add(@Valid Banner banner, BindingResult result) {
            if (result.hasErrors()) {
                // 抛出错误
            }
            return ResultUtil.isOk(bannerService.add(banner));
        }
    
    
        @LogDetail(describe = "获取banner数据集合")
        @GetMapping(value = "/query")
        @ResponseBody
        public Object query(Integer siteId) {
        }
    
        @LogDetail(describe = "编辑banner图")
        @PostMapping(value = "/edit")
        @ResponseBody
        public Object edit(Banner banner) {
        }
    
        @LogDetail(describe = "删除banner图")
        @PostMapping(value = "/del")
        @ResponseBody
        public Object del(Integer id) {
        }
    
        @LogDetail(describe = "根据id获取banner详情")
        @GetMapping(value = "/queryById")
        @ResponseBody
        public Object queryById(Integer id) {
        }
    
    }

     注意:Controller里的@Autowired注解的是service的接口,而不是service的实现类

    7、mybatis-plus用法

    自己的博客链接:

    https://www.cnblogs.com/wt7018/p/13357965.html

    等于

    Wrapper<Banner> wrapper = new EntityWrapper<>();
    wrapper.eq("carousel_type", banner.getCarouselType());
    wrapper.eq("img_address", banner.getImgAddress());
  • 相关阅读:
    单链表之C++实现
    Activity的onSaveInstanceState()和onRestoreInstanceState()方法
    一段代码引发的血案
    Android核心基础(十)
    paip.提升性能--- mysql 建立索引 删除索引 很慢的解决.
    求数组的子数组之和的最大值
    HDU 1576 A/B(数论)
    脚本控制向Android模拟拨打电话,发送短信,定位设置功能
    [置顶] java ant 配置及构建项目
    paip.输入法编程---智能动态上屏码儿长调整--.txt
  • 原文地址:https://www.cnblogs.com/wt7018/p/13608017.html
Copyright © 2011-2022 走看看