Localdatetime to Date Format Java

Localdatetime to Date Format Java

在使用java时间的api个人感觉非常不方便,很多时候存在格式转换,类型转换 比如datelocalDate localDateTime转换为 Date 等这种操作,二者的相互转换并不是一步到位哪么简单的,所以,还是在 这里记录一下转换的api备忘一下, localDate只处理yyyyMMdd格式,localTime只处理HHmmss格式,而 localDateTime 可以处理 yyyy-MM-dd HH:mm:ss

Read more →

Classpath Resource Not Found When Running as Jar

读取jar包resources目录下的groovy脚本并调用

工作需要,需要采集不同的日志项,每个日志项的参数不一样,判断验证需要根据业务需求判断 所以采用生成groovy脚本形式来解决动态校验以及入库规则 项目初期设计不复杂,功能简单,直接按日志项名称编写groovy脚本规则,比如wifi日志,则规则文件名为wifi.groovy 当日志的http接口请求到wifi名称,则加载wifi.groovy规则文件并解析判断,包括入库,kafka队列等 groovy文件放在resources/logTemplate文件夹下,遇到在jar包模式运行不能读到文件的问题 而在idea能直接运行 java -jar xxx.jar 运行报错如下

Read more →

Mybatis Failed to Save Data

记一次遇到mybaits写入数据不成功问题

工作中在作日志采集接口时,遇到写入mysql数据不成功时,当时sql是正常的,采用sp6y sql显示粘贴复制到 mysql client 执行sql执行并没有问题,但是调用接口时,写入mysql不成功,也不报错,遇到这种问题特别 困惑,特记录一下,

找了一下午才发现问题,最怕就是程序不报错,语句执行成功,但数据库没有数据这样的问题呢 主要问题是接口请求实体类有几个版本字段是用的Long 类型的,而mysql表对应的字段是int类型的 在用mybatis-generate 插件生成表的 mapper.xml、dao、model时,mysql字段为int类型的生成对应的integer类型 但是代码定义的dto 接口请求实体类,字段是long类型,入库时,存在long 转 integer 的行为,行为非法,但执行时sql不报错 由于时间关系没有进一步查为什么不报错提示,xml生成的字段类型都是 java.lang.Integer

Read more →

How to solve SpringBoot Mysql CLIENT_PLUGIN_AUTH Is Required error

一次上线遇到的问mysql版本使用问题CLIENT_PLUGIN_AUTH

当在项目做好即将上线时,突然发现线上数据库版本太低而报如题错误,导致程序上线启动失败,现有数据库己被很多老的项目在使用着,不可能让dba去更新数据库版本,或另开服务器。

找了一下原因,是因为使用spring boot 2.x版本,相对比较新,而默认使用的数据库版本为mysql-connect 库 8.x,而需要手动给mysql connect jar包库版本降级,从8.x降到5.1.48

Read more →

Enumeration Class Used in Java

枚举类在java中使用方法之一

在后数据中台中,有些数据不需要放在数据库当中,只需要一个枚举类即可,比如web ui select 选择器下拉数据, 这种,还比如省市 下拉数据,而这些数据可以不需要数据库来保存,也不需要用配置文件来保存,只需要一个枚举类即可,使用方法如下


public enum AppCmdEnum {

   APP_INSTALL(1, "安装命令"),
   APP_UNINSTALL(2, "卸载命令"),
   APP_UPGRADE(3, "升级命令");

   Integer code;
   String name;

   private static Map<Integer, String> KEYS_MAP = new HashMap<>();
   private static Map<String, String> KEYS_MAP_SS = new HashMap<>();

   //初始化枚举类资源类型数据返回,
   static {
      for (AppCmdEnum item : AppCmdEnum.values()) {
         KEYS_MAP.put(item.code, item.name);
         KEYS_MAP_SS.put(item.code.toString(), item.name);
      }
   }

   public static Map<Integer, String> getKeysMap() {
      return KEYS_MAP;
   }

   public static Map<String, String> getKeysMapSS() {
      return KEYS_MAP_SS;
   }

   //增加一个构造函数,丰富描述该枚举类的作用,和功能,字段含义
   //根据业务需求可以,可以增加很多的属性字段,扩展非常灵活
   AppCmdEnum(Integer code, String name) {
      this.code = code;
      this.name = name;
   }

   public Integer getCode() {
      return this.code;
   }

   public String getName() {
      return this.name;
   }
}

在spring boot项目调用方法

Read more →

Mybaits Plus Comes With Paging VS Com.github.pagehelper Paging Plug In

mybatis-plus 自带分页 和 com.github.pagehelper工具使用对比

对经常写中台列表数据管理接口的同学来说,需要经常使用到分页插件来提升自己的工作效率,通常我用过最多的两款插件如标题所示,这两款插件在写文章之前,我一直搞不清,浮躁,混为一谈,需要总结整理

今抽空花些时间来比较一下他们在返回response body 时内容, 观察到pagehelper不愧是术业有专攻啊,个人认为pagehelper 作为专业分页插件不得不说,其功能特点比mybatis-plus 完善多了,考虑到人性化,由期在前后端对接方面,大大提升了效率,少写很多代码,不过有时还是看需求场景,对于不需要web端展示的,我推荐mybatis-plus 自带的page分页 ,它相比pagehelper插件提供的能力还是比较简单,比如没有提供页码位置前一页后一页

Read more →

How to Do Not Release Resources After Uploading the Zip Package in Java

在windows系统中检验一个上传文件程序是否有bug另一种姿势

某一天在公司对一个文件上传项目进行bug修改,不料查到另一个bug 也顺带解决,在此记录一下解决过程

在windows系统调试一个文件上传程序,手贱想重新删除原文件,重新上传,结果这一删除发现windows 弹窗,报窗

文件正常使用 错误提示。

这个程序需求就是把一个zip包上传到ftp当中,流程是先上传到服务器本地,然后同步到ftp当中

Read more →