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());

 

posted @ 2020-09-03 15:53  市丸银  阅读(142)  评论(0编辑  收藏  举报