一次上线遇到的问mysql版本使用问题CLIENT_PLUGIN_AUTH
当在项目做好即将上线时,突然发现线上数据库版本太低而报如题错误,导致程序上线启动失败,现有数据库己被很多老的项目在使用着,不可能让dba去更新数据库版本,或另开服务器。
找了一下原因,是因为使用spring boot 2.x版本,相对比较新,而默认使用的数据库版本为mysql-connect 库 8.x,而需要手动给mysql connect jar包库版本降级,从8.x降到5.1.48
当在项目做好即将上线时,突然发现线上数据库版本太低而报如题错误,导致程序上线启动失败,现有数据库己被很多老的项目在使用着,不可能让dba去更新数据库版本,或另开服务器。
找了一下原因,是因为使用spring boot 2.x版本,相对比较新,而默认使用的数据库版本为mysql-connect 库 8.x,而需要手动给mysql connect jar包库版本降级,从8.x降到5.1.48
在后数据中台中,有些数据不需要放在数据库当中,只需要一个枚举类即可,比如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项目调用方法
对经常写中台列表数据管理接口的同学来说,需要经常使用到分页插件来提升自己的工作效率,通常我用过最多的两款插件如标题所示,这两款插件在写文章之前,我一直搞不清,浮躁,混为一谈,需要总结整理
今抽空花些时间来比较一下他们在返回
response body
时内容, 观察到pagehelper
不愧是术业有专攻啊,个人认为pagehelper
作为专业分页插件不得不说,其功能特点比mybatis-plus
完善多了,考虑到人性化,由期在前后端对接方面,大大提升了效率,少写很多代码,不过有时还是看需求场景,对于不需要web端展示的,我推荐mybatis-plus 自带的page分页
,它相比pagehelper
插件提供的能力还是比较简单,比如没有提供页码位置
,前一页
,后一页
某一天在公司对一个文件上传项目进行bug修改,不料查到另一个bug 也顺带解决,在此记录一下解决过程
在windows系统调试一个文件上传程序,手贱想重新删除原文件,重新上传,结果这一删除发现windows 弹窗,报窗
文件正常使用 错误提示。
这个程序需求就是把一个zip包上传到ftp当中,流程是先上传到服务器本地,然后同步到ftp当中