自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mbh的博客

失败是什么?没有什么,只是更走近成功一步;成功是什么?就是走过了所有通向失败的路,只剩下一条路,那就是成功的路。

  • 博客(272)
  • 资源 (2)
  • 收藏
  • 关注

原创 Mysql allowLoadLocalInfil 参数漏洞分析

收到这个漏洞首先,第一时间去官网,官网说这个参数3.03版本就修复了。默认false值。想当然的认为没问题,分析版本一大波操作下来,最后看源码默认值true,坑爹的官网有错误,坑死老夫了,果断跟官网反映allowLoadLocalInfileShould the driver allow use of “LOAD DATA LOCAL INFILE …”?Setting to “true” overrides whatever path is set in ‘allowLoadLocalInfile

2021-01-06 10:19:21 86

原创 笛卡尔积

package com.epoch.planning;import java.util.ArrayList;import java.util.List;public class DescartesUtil { public static void main(String[] args) { List<List<String>> list = new ArrayList<List<String>>(); int.

2020-12-11 16:14:11 73

转载 正则表达式工作利器你还不会?

什么是正则表达式?正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子。一个正则表达式是一种从左到右匹配主体字符串的模式。 “Regular expression”这个词比较拗口,我们常使用缩写的术语“regex”或“regexp”。 正则表达式可以从一个基础字符串中根据一定的匹配模式替换文本中的字符串、验证表单、提取字符串等等。想象你正在写一个应用,然后你想设定一个用户命名的规则,让用户名包含字符、数字、下划线和连字符,以及限制字符的个数,好让名字看起来没那么

2020-12-11 15:16:15 88

原创 高版本的planning版本里,某些web界面显示乱码

高版本的tomcat部署planning应用时,会出现乱码,解决方案:1、进入到 tomcat目录 bin下catalina.bat 中将 set “JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%”改为 set “JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF-8”catalina.sh 中将 JAVA_OPTS="$JAVA_OPTS JSSEOPTS"改为JAVAOPTS="JSSE_OPTS"改为 JAVA

2020-12-10 17:05:59 12

原创 为什么要重写hashcode和equals方法?

为什么要重写hashcode和equals方法?简单总结:基本类型 使用 == 进行值比较。对象使用equals 进行内存地址如果Map key为对象不重写直接调用的Object.equals 还是进行的内存比较,有时候,我们仅仅是逻辑比较。其他参考:https://blog.csdn.net/weixin_44417508/article/details/105914426...

2020-11-30 20:01:49 25

原创 Oracle 创建 表空间、用户、分权限

windows 环境create tablespace c1_gdt_management_tbs datafile 'e:\oracledata\c1_gdt_management_tbs.dbf' size 1024m;create user c1_gdt_management identified by c1_gdt_management default tablespace c1_gdt_management_tbs;grant dba to c1_gdt_management;grant

2020-11-25 17:00:54 13

原创 Oracle修改表列字段名或类型

alter table T_PLN6_FLOW_TASKFORM add (UPLOADFILE2 CLOB);update T_PLN6_FLOW_TASKFORM set UPLOADFILE2 = UPLOADFILE;alter table T_PLN6_FLOW_TASKFORM drop column UPLOADFILE;alter table T_PLN6_FLOW_TASKFORM rename column UPLOADFILE2 to UPLOADFILE;

2020-11-25 16:40:52 59

原创 Linux配置jdk环境变量

1.下载jdk例如:jdk-8u171-linux-x64.tar.gz2.上传到Linux服务器/root/tools3.解压tar -zxvf jdk-8u171-linux-x64.tar.gz4.将解压后的jdk转移至/usr/localmv jdk1.8.0_171 /usr/local/5.修改配置文件vim /etc/profile5.1 加入以下语句export JAVA_HOME=/usr/local/jdk1.8.0_171export PATH=JAVAHOME

2020-11-25 16:37:24 20

原创 Linux上安装mysql5.7.25

参考链接:https://jingyan.baidu.com/article/359911f59b00ae57ff030677.htmlhttps://dev.mysql.com/doc/refman/5.7/en/starting-server.html1、先参考链接https://jingyan.baidu.com/article/359911f59b00ae57ff030677.html安装配置好mysql2、登陆mysql增加用户和赋相应的权限mysql -u root -p3、修改r

2020-11-25 16:36:36 9

原创 命令行模式执行初始化脚本(oracle)

1.登录oracle服务器2.切换到oracle用户:su - oracle3.登录某个数据库:sqlplus username/password@dbname例如:sqlplus shiy/shiy@shiyy_test4.执行sql文件@/home/oracle/sql/planning_oracle.sql

2020-11-25 16:35:58 35

原创 命令行模式验证初始化脚本(MySQL)

1、登陆mysql服务器。在任何一台装有mysql的机器上。进入mysql的bin目录。2、执行如下命令 连接到指定的数据库(连接到192.168.12.27,用户名root,密码Pa88w0rd@noah)mysql -uroot -pPa88w0rd@noah -h 192.168.12.273、创建临时数据库temp1(字符集是utf8,排序规则是unicode且不区分大小写)create database temp1 character set=utf8 collate=utf8_gener

2020-11-25 16:34:43 22

原创 高版本(大于8.5.31左右)tomcat乱码问题

不是代码的问题,是tomcat 的配置问题。tomcat目录 bin下catalina.bat 中将 set “JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%”改为 set “JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF-8”catalina.sh 中将 JAVA_OPTS="$JAVA_OPTS JSSEOPTS"改为JA

2020-11-25 16:34:03 22

原创 高效率笛卡尔积算法-java

公司要用到笛卡尔积工具类,网上一搜,都能实现,但是数据一大性能实在不敢恭维。分享一个大牛的算法import java.util.Iterator;import java.util.NoSuchElementException;public class CartesianIterator<T> implements Iterator<T[]>{ private int[] elementSizes; private T[][] element; private int

2020-11-17 16:32:07 60

原创 Flex布局

常见父项属性以下6个属性是对父元素设置的属性描述flex-direction设置主轴的方向justify-content设置主轴上的子元素排列方式flex-wrap设置子元素是否换行align-content设置侧轴上的子元素排列方式(多行)align-items设置侧轴上的子元素排列方式(单行)flex-flow复合属性,相当于同时设置flex-direction 和 flex-wrapJustify-content 设置主轴上的子元

2020-11-14 13:28:40 16

原创 Java序列化、反序列化知多少

Java序列化、反序列化知多少https://mp.weixin.qq.com/s/0EfIUB9E-0Oh_Clwuxswuw普通类package com.epoch.planning;import java.io.Serializable;/** * @description: * @author: mabh * @time: 2020/11/12 15:42 */public class Student implements Serializable { priva

2020-11-13 14:17:40 9

原创 适合初学者入门 Spring Security With JWT 的 Demo

https://github.com/Snailclimb/spring-security-jwt-guide

2020-10-22 13:40:06 18

转载 JWT 身份认证优缺点分析以及常见问题解决方案

之前分享了一个使用 Spring Security 实现 JWT 身份认证的 Demo,文章地址:适合初学者入门 Spring Security With JWT 的 Demo。 Demo 非常简单,没有介绍到 JWT 存在的一些问题。所以,单独抽了一篇文章出来介绍。为了完成这篇文章,我查阅了很多资料和文献,我觉得应该对大家有帮助。相关阅读:《一问带你区分清楚Authentication,Authorization以及Cookie、Session、Token》适合初学者入门 Spring Secur

2020-10-22 13:17:54 126

原创 HTTP 身份验证框架(Basic 认证)

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/401https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/WWW-Authenticatehttps://developer.mozilla.org/zh-CN/docs/Web/HTTP/AuthenticationRFC 7235 定义了一个 HTTP 身份验证框架,服务器可以用来针对客户端的请求发送 challeng.

2020-10-20 15:22:26 158 2

转载 JSON Web Token 入门教程

JSON Web Token 入门教程JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。3、服务器向用户返回一个 session_id,写入用户的 Cookie。4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。

2020-09-28 20:10:42 25

转载 还在百度Linux命令?推荐一套我用起来特顺手的命令!

SpringBoot实战电商项目mall(40k+star)地址:github.com/macrozheng/…摘要作为一位Java后端开发,怎能不会点Linux命令?总结了一套非常实用的Linux命令(基于CentOS 7.6),希望对大家有所帮助!系统服务管理systemctlsystemctl命令是service和chkconfig命令的组合体,可用于管理系统。输出系统中各个服务的状态:systemctl list-units --type=service复制代码查.

2020-09-28 19:26:21 25

原创 Vue环境初始化

键入命令:vue ui 使用Vue可视化进行创建脚手架

2020-09-28 11:36:53 13

原创 Java函数式编程笔记

接口输入参数返回类型说明PredicateTboolean断言ConsumerT/消费一个数据Function<T,R>TR输入T输出R的函数Supplier/T提供一个数据UnaryOperatorTT一元函数(输出输入类型相同)BiFunction<T,U,R>(T,U)R2个输入的函数BinaryOperator(T,T)T二元函数(输出输入类型相同)import jav...

2020-09-26 15:39:04 17

转载 Java中List, Integer[], int[]的相互转换

相信新手们在学习Java的过程中都会遇到和我一样的问题:想要把List和int[]相互转换太麻烦了。List和String[]也同理。难道每次非得写一个循环遍历吗?其实一步就可以搞定。本文涉及到一些Java8的特性。如果没有接触过就先学会怎么用,然后再细细研究。import java.util.Arrays;import java.util.List;import java.util.stream.Collectors; public class Main { public stati

2020-09-14 10:23:10 49

原创 字节码插装技术

运行时 .jarJavaagent入口方法mainpreman参数Main-classPremain-class运行Java -jar xxx.jar-javaagent: xxx.jar还有AST语法树

2020-09-10 20:50:56 33

原创 Mac Navicat 无法连接Mysql-亲测可用

书接上文:https://blog.csdn.net/mbh12333/article/details/80539294不好用的方法:my.ini 下设置 bind-address=0.0.0.0修改端口号设置入站出站规则 3306加入规则中8.0 好像加入了插件机制,caching_sha2_password 如果你用的客户端不支持,更新到新版本客户端。如果像我一样是mysql在win10虚拟机里你就用客户端-用户改下就行了由于我的是Win10虚拟机里面装的mysql,我用navica

2020-08-30 18:34:09 327

原创 java 获取主机IP,主机名、货币格式化、日期格式化、消息格式化

package com;import java.net.InetAddress;import java.net.UnknownHostException;import java.text.DateFormat;import java.text.MessageFormat;import java.text.NumberFormat;import java.util.Date;import java.util.Locale;/** * @description: * @author:

2020-08-29 11:27:48 42

原创 Java 1.7+ 读写文件操作

public class FileIO { public static void main(String[] args) throws IOException { try (BufferedWriter bufferedWriter = Files.newBufferedWriter(Paths.get("/Users/mbh/Downloads/a.txt"), StandardCharsets.UTF_8)) { bufferedWriter.write(

2020-08-29 11:08:29 78

原创 java实现微信消息和小程序模板消息推送

002java实现微信模版消息推送本节知识点1,注册微信公号测试账号2,获取测试账号的用户openid3,接入微信推送sdk4,实现微信推送课程中用到的网址和文件1,微信官方注册测试账号:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login配套笔记5行代码实现微信模版消息推送视频地址在线视频:https://edu.csdn.net/course/detail/23750核心代码1 三方类库

2020-08-29 10:33:03 264 2

原创 css父高度塌陷-清除浮动

浮动元素脱离文档流,所以不占位置,当父元素没有设置高度时,不能撑开,导致父元素的高度塌陷,所以我需要清除浮动。子元素加clear在浮动元素后面加一个空的子元素,并给其css属性clear: <div style="clear:both"></div>Clear 取值: left | right | bothleft: 清除左浮动right: 清除右浮动both: 清除所有浮动父元素加宽高直接规定父元素的宽高,请不存在塌陷问题了。问题是,父元素的扩展性不好,比

2020-08-29 10:06:23 97

原创 推荐使用枚举单例模式,不推荐double check单例模式

2020-08-22 11:31:17 41

转载 java用POI设置Excel的列宽

需求:将某个excel中的某一列列宽设置为35(该数值是Excel中显示的列宽值)。poi中设置列宽的方法为:HSSFSheet.setColumnWidth(int columnIndex, int width);1第一个参数好理解–列序号,关键是第二个参数宽度的值,应该设置为多少呢?我做了以下尝试,发现均不好使sheet.setColumnWidth(0, 35); //asheet.setColumnWidth(0, (int)35.7*35); //bshee

2020-08-07 11:03:52 254

原创 Java动态代理

package com;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;/** * @description: * @author: mabh * @create: 2020/7/21 10:46 下午 **/public class aaa { private static ABC abc; public

2020-08-02 15:15:59 40

转载 最全MySQL性能优化—索引篇

前言今天我们来讲讲如何优化MySQL的性能,主要从索引方面优化。下期文章讲讲MySQL慢查询日志,我们是依据慢查询日志来判断哪条SQL语句有问题,然后在进行优化,敬请期待MySQL慢查询日志篇建表// 建表CREATE TABLE IF NOT EXISTS staffs( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(24) NOT NULL DEFAULT "" COMMENT'姓名', age INT NOT NULL

2020-08-01 16:10:14 86

原创 POM 文件添加 阿里下载源提高jar下载速度

<repositories> <repository> <id>alimaven</id> <name>Maven Aliyun Mirror</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> &l

2020-07-21 22:11:36 90

原创 java 对象序列化成字节 解析Mybatis Cache 密码

private byte[] serialize(Serializable value) { try (ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos)) { oos.writeObject(value); oos.flush(); return bos.toByteArray()

2020-07-21 22:10:12 51

转载 Spring Boot (十一): Spring Boot 定时任务

在实际的项目开发工作中,我们经常会遇到需要做一些定时任务的工作,那么,在 Spring Boot 中是如何实现的呢?1. 添加依赖在 pom.xml 文件中只需引入 spring-boot-starter 的依赖即可:代码清单:spring-boot-scheduler/pom.xml<dependencies> <dependency> <groupId>org.springframework.boot</groupId&gt.

2020-07-12 16:44:15 59

转载 css3自适应布局单位vw,vh你知道多少?

*视口单位(Viewport units)*什么是视口?在PC端,视口指的是在PC端,指的是浏览器的可视区域;而在移动端,它涉及3个视口:Layout Viewport(布局视口),Visual Viewport(视觉视口),Ideal Viewport(理想视口)。视口单位中的“视口”,PC端指的是浏览器的可视区域;移动端指的就是Viewport中的Layout Viewport。根据CSS3规范,视口单位主要包括以下4个:1.vw:1vw等于视口宽度的1%。2.vh:1vh等于视口高度的1

2020-06-30 20:00:50 273

转载 12个CSS常用技巧 - 前端开发必备

1. 利用 CSS 穿透覆盖默认样式常见发生场景:假如我们需要通过 input,type="file"来上传文件,而这个 input 的默认样式,可以说是非常地丑。所以我们希望通过一张图片,与这个 input 大小一样,位置一致地盖在上面。这个时候,显然,这个时候点击图片,input 是不会起作用的。就是因为 img 隔绝了 click 的穿透,而我们希望的是,这个 img 只是视觉上遮挡了 input 的样式,但是点击的时候还是点击到 input。所以,只要让 img 可穿透即可。css 代码如下:

2020-06-30 19:56:09 75

原创 form表单提交或上传附件 页面刷新问题,后台返回JSON完美处理方案

一般我们用的第三方库基本上都是内部封装好的,也都是这种方式,比如jquery 的 AjaxSubmt,他在上传的时候就是临时生成iframe form 用户上传,要不然他也做不到。<form style="margin: 20px 30px 10px 45px;" class="layui-form userForm" action="user/save" enctype="multipart/form-data" method="post"

2020-06-29 13:19:58 115

原创 Ajax提交与Form表单提交数组

Ajax 提交数组@PostMapping("/save")public void saveUser( @RequestParam("userRole[]") List<Integer> roleIds) {$.post('/save',{ userRole:[10002,30043] },function(data){ //todo });Form表单提交数组普通第一种方式就够了,第二种属于要上传附件,还要提交数组。当然了不上传附件也可以用啦!!!@PostMappi

2020-06-29 13:09:58 281

爬取知乎专栏文章并生成PDF css文件

https://blog.csdn.net/mbh12333/article/details/103264866

2019-11-26

Java内嵌式Tomcat-TomcatDemo

这是一个Java内嵌式 Tomcat的Demo。详细文章请见我的博客

2018-12-12

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除