- 博客(123)
- 资源 (27)
- 问答 (3)
- 收藏
- 关注
原创 mybatis if test判断BigDecimal遇到的坑
<update id="test" parameterType="cn.test.Demo"> update test <trim prefix="set" suffixOverrides=","> <if test="bigDecimalValue != null and bigDecimalValue != ''"> bigDecimal_value = #{bigDec...
2021-12-16 17:35:41 1842 2
原创 java.lang.IllegalArgumentException: Comparison method violates its general contract
排序遇到一个异常2021-11-24 10:42:01.185 ERROR 39804 --- [pool-9-thread-8] c.s.guns.modular.api.EnterpriseApi : --- java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeHi(TimSort.java:899) ...
2021-11-24 10:50:16 427
原创 mysql 根据某个字段的一部分来分组
1.数据长这个样子,test表有2个字段,id和name,根据name来分组,name前面一段相同,后面的序号不同,这种算一组数据。2.分完组是这个样子3.sqlSELECT LEFT ( a.name, ( IF ( char_length(a.name) - char_length( SUBSTRING_INDEX(a.name, '-', - 1) ) = 0, char_length(a.name), char_l..
2021-10-09 18:03:15 2992
原创 封装StringBuffer连接多个字符,并去掉最后一个分隔符
/** * 连接多个字符串,并用split字符分割,返回结果去掉字符最后面的split字符 * @param split * @param values * @return */ public static String joinString(String split, String... values) { StringBuffer result = new StringBuffer(); for (String value : values) { result.a..
2021-08-29 11:59:12 497
原创 JTA transaction unexpectedly rolled back (maybe due to a timeout)
造成这个异常的原因是在方法上加了事务标签@Transactional,这个标签,默认的超时时间是5秒钟,如果这个方法执行的时间超过了5秒,就会报这个异常。 org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackE
2021-08-02 20:07:35 5843
原创 阿里云对象储存oss报Unable to build cipher: Illegal key size
今天在使用阿里的oss上传加密文件一直报Unable to build cipher: Illegal key size这个异常,网上也找不到完全一样的情况,后来看到一篇《微信 AES 解密报错 Illegal key size 三种解决办法》,和我遇到的问题有点类似,大致原因就是在jdk1.8.0_161-b12这个版本之前,默认使用的是限制的加密算法,只支持 128位,所以要么改成不限制加密算法,要么升级jdk。解决过程挺简单的,一看就懂,这里只是记录一下。把unlimited目录下的2个包覆盖到l
2021-07-20 14:49:44 304
原创 字符串类型的list转字符串
/** * 字符串类型的list转成字符 * @param list * @return */ public String list2String(List<String> list) { StringBuffer sb = new StringBuffer(); if (list != null && list.size() > 0) { list.forEach(o -> sb.append(o)); } return ..
2021-07-16 15:04:06 238
原创 com.jcraft.jsch.ChannelSftp 上传特殊字符报异常问题的调查
最近一个项目用到sftp上传文件的功能,发现其中上传包含“*”星号的文件就会抛一个SftpException异常,而且抛出的异常也没什么说明。本以为windows系统不支持特殊字符导致的,后来部署到linux上问题依旧存在,看来只能研究下源代码了。打开com.jcraft.jsch.ChannelSftp这个类,定位到抛异常的地方,里面有一句代码if(isPattern(dst)) throw new SftpException(SSH_FX_FAILURE, dst);看来就是..
2020-12-21 15:11:28 2026
原创 验证文件的常用方法
最近在做一个文件备份的项目,服务器是Linux的,我一开始是用md5来验证文件是否发生变化,但奈何客户那边说md5他们不允许用,那只好换一种方法啦。其实linux下验证文件的方式除了md5还有hash校验,命令如下sha1sum、sha224sum、sha256sum、sha512sum[root]# sha1sum test.txt356a192b7913b04c54574d18c28d46e6395428ab test.txt[root]# md5sum test.txtc4
2020-11-25 12:01:23 1834
原创 通过js来获取上传文件的md5值
业务背景:最近有个项目要做文件的备份,备份有全备和增备,而增备的话需要比较文件的md5来判断文件是否发生了变化,所以我想到了在上传文件的时候先获取文件的md5和数据库中旧文件的md5来作比较。调查了一下,发现有个叫browser-md5-file的js库可以很方便实现这个功能,而且支持各种浏览器,下载地址下面直接上代码1.第一步先引入js文件<script src="js/browser-md5-file.min.js"></script>2.第二步绑..
2020-11-05 10:37:59 3668
原创 java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0
今天用mybatis-generator生成代码的时候,报了java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0这个错,查了原因之后原来是因为之前的项目用的java1.7的版本,而我用的数据库驱动是要java1.8版本才支持,所以改了一下版本后,问题就解决了,记录一下。...
2020-10-24 11:27:08 670
原创 Sftp下载在页面上显示进度
业务需求是这样的,从一个服务器下载文件到本地,但有时候文件很大,需要查看下载的进度。这里只提供一下思路,有问题的可以留言交流。1.项目用的是ssm架构(springboot+spring+mybatis)2.sftp用到的是jsch这个包3.下载的时候用ajax来请求,因为ajax的success回调函数只有在请求结束的时候才能调用,所以无法实时监控下载的情况。4.想到通过ajax的beforeSend这个回调函数来增加一个监控线程,设定一个setInterval,每隔1秒请求后台来.
2020-10-20 18:39:10 1323 2
原创 java连接sftp遇到的坑
java连接sftp用到的jar包,一般都是选jsch,最近有个项目需要用到这个,于是把之前有相同功能的模块移植过来,但在连接sftp的时候一直报以下异常com.jcraft.jsch.JSchException:Session.connect:java.io.IOException:End of IO Stream Read百度了一个下午,要么说是java版本问题,要么就是jsch,来回折腾了很久,问题还是在,总之就是在以下2个异常之间徘徊com.jcraft.jsch.JSch..
2020-10-15 11:08:25 5077 1
原创 apache设置不同域名访问同一ip的不同目录
需求:2个项目部署在一台服务器上的不同目录,比如A项目部署在rootA目录,B项目部署在rooB目录,现在访问testA.com跳转到rootA目录,访问testB.com跳转到rootB目录网上的说法是设置httpd.conf,增加一个VirtualHost标签,于是我照着配置了,如下<VirtualHost *:80> DocumentRoot /yjdata/www/rootA ServerName testA.com</VirtualHost>&l.
2020-09-10 15:26:38 1147
原创 eclipse插件jseclipse的离线安装
最近换了一个版本的eclipse,有些插件需要重新安装,jseclipse是eclipse对javascript编辑的插件,发现eclipse marketplace已经找不到它了,于是从网上下载一个离线版本的安装(下载地址),遇到有些坑,记录一下。1.下载完后把压缩包解压到一个目录。2.点击help -> install new software点击add,选择local设置刚才解压的目录3.接下来有一个坑的地方,需要把下图那个红框标注的复选框去掉,不然会联网更新,如果网络不好的话会
2020-08-12 13:26:42 1181
原创 eclipse使用mybatis时,xml没有提示标签信息
eclipse使用mybatis时,xml没有提示标签信息,就是按alt+/的时候应该出现以下画面,但是没有出现提示信息百度了一下,其实这个问题很好解决,但就是有很多人写了一些误导别人的文章,导致增加了大家解决问题的时间成本。我自己整理了一下,亲测可用1.首先下载mybatis-3-mapper.dtd(下载地址)这个文件(我在一篇文章里看到说要用mybatis-3-config.dtd这个文件,让我掉进坑里,浪费了一些时间)。下载完后放到随便一个目录里,比如D:\doc\mybatis-3
2020-08-06 17:04:54 758
原创 今天用mybatis又掉进坑里了(插入数据后获取最大的主键值)
很久没有用“插入数据后获取最大的主键值”这个功能了,有点忘记,于是翻看笔记,关键点就是下面这段<insert id="add" parameterType="cn.test.Question" keyProperty="id"> <selectKey keyProperty='id' resultType='long' order='AFTER' > select LAST_INSERT_ID(); </selectKey>省略...</i
2020-08-03 17:03:56 937
原创 后台管理框架Guns在eclipse里的使用
1.下载Guns2.导入maven项目3.选择Guns-master4.修改一下application.yml5.修改application-local.yml,配置mysql6.运行一下sql脚本,在数据库中建立基本表7.启动项目8.浏览器访问...
2020-07-21 10:47:55 392
原创 代码混淆ProGuard,研究了2天终于成功,记录一下
1.业务需求公司有块核心代码不希望给别人抄袭,但系统是用java开发的,无法避免被反编译的情况,于是想到了用代码混淆的方式来解决。2.调查调查了一下主流的第三方混淆工具,发现只有ProGuard用的最多,而且版本一直在更新维护,功能也比较多,所以打算用这个来混淆。3.下载了proguard6.2.2这个版本,解压缩后执行proguard6.2.2\bin\proguardgui.bat这个文件就可以打开软件,标红框的地方是需要特别设置的,其他地方都可以默认4.设置Input.
2020-06-24 11:10:20 14117 12
原创 实现dubbo的Filter接口,如何注入spring容器里的bean
最近项目里用到dubbo的filter来做一些预处理的业务,但发现继承了Filter接口的类,无法通过@Autowired或者@Resource来注入spring容器里的对象,比如有个TestService,可以通过下面两种方式注入进来1.dubbo通过setter方式自动注入 private TestService testService; public void setTestService(TestService testService) { this.testService =
2020-06-15 10:16:22 3773 1
原创 sql语句中,双竖线“||”遇到的坑
1.业务背景以前的一个项目是用oracle做的,现在改成maria数据库,orm用的是mybatis2.遇到的问题本以为换个数据库只要改些配置就行了,没想到遇到一个like语句的问题,无论条件传入什么,返回的是全部的值sql是这样写的 <if test="name!= null and name!= ''"> and name like '%'||#{name}||'%' </if>3.调查结果原来双竖线“||”在ora.
2020-06-08 16:34:34 10202
原创 通过配置xml或者注解的方式来使用dubbo的filter
最近在研究dubbo的权限验证功能,这里要用到dubbo的filter,于是在网上查询有关资料,但各种版本的都有,遇到很多坑,比如通过注解@Activate的方式来实现激活条件和时机(下面这段表示如果方法是服务提供者,就会先激活filter,等执行完filter以后才执行后面被调用的服务方法)@Activate(group = "provider")public class TestDubboFilter implements Filter { @Override public Resul
2020-06-05 10:58:14 975
原创 dubbo ReferenceConfigCache缓存导致获取的服务是同一个
1.业务背景有2个不同区域的zookeeper,工程需要调用一个zookeeper的服务,然后再调用另外一个zookeeper,这2个服务的名字是一样的,但因为在不同的注册中心,所以不会冲突。2.设计方案消费者端通过动态设置ReferenceConfig的方式来获取不同区域的zookeeper中的服务3. 我写了一个DubboUtils来根据参数动态的获取服务,为了性能我还加入了ReferenceConfigCache 来作为缓存,代码如下public class DubboU
2020-05-26 14:20:46 3767 6
原创 通过mybatis-plus来进行物理分页的总结
使用mybatis-plus的分页功能需要以下步骤1.pom.xml添加dependency2.增加PaginationInterceptor3.设置sqlSessionFactory4.自定义mapper方法直接上代码1.我用的是springboot结合mybatis-plus,pom.xml如下<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001...
2020-05-18 13:55:27 2721 1
原创 html2canvas遇到的坑,图片模糊,报Error loading image
最近业务上遇到需要把div的内容生成图片,查了一下,比较好的js插件是html2canvas,用下来也确实比较简单,但遇到一些坑,比如生成的图片比较模糊,或者报Error loading image1.一开始用的0.5.0-beta4的版本,生成的图片很模糊,网上一大堆解决方案,但其实只要用新一点的版本就能解决问题。2.于是我找了最新的版本下载地址v1.0.0-rc.5,虽然生成的图...
2020-04-15 10:49:48 14483 5
原创 mybatis缓存造成的out of memory
业务上有个数据处理的程序,需要把某个表的数据全部抽出来做处理,为了考虑性能和内存问题,我已经通过分批的方式来查询数据,但在测试环境运行时,还是报了out of memory的异常,最后发现原来是mybatis的一级缓存造成的,设置flushCache="true"问题解决。...
2020-04-10 14:19:08 615 1
原创 list通过stream的lambda表达式转map的时候的坑
1.User对象public class User { private String name; private Integer age;}2.test方法 public static void main(String[] args) throws InterruptedException { List<User> list = new ...
2020-01-02 13:36:46 2145
原创 通过反射来写一个批量插入的工具类
背景:项目中会有很多地方用到批量插入,如果数据量大的话需要通过分批的形式来批量插入,但师不同的表会调用不同的dao的方法,而分批插入的代码又是相似的,每次都要写一边这个相似的代码,势必会造成代码的冗余,所以需要把分批插入的部分封装成一个共同的方法来调用,我想到的是通过反射机制,代码如下。1.interfacepublic interface CommonService { /**...
2019-12-27 13:27:07 376
原创 记录一下mybatis遇到的一个坑
<select id="getList" resultType="com.test.AClass"> SELECT b.id, b.sth FROM a LEFT JOIN b ON a.id = b.id</select>比如以上这段代码,如果a表和b表左联,如果返回的b.id和b.sth都为null,那么getList这个方法返回的List&l...
2019-09-27 11:28:27 305
原创 mysql函数concat的坑
select CONCAT(null,"aaaa");select CONCAT("aaaa",null);上面这2种写法,返回的值都为Null所以如果要把两个变量的值concat的话,需要替换掉Null值,不然的话只要某个变量为null,结果都为null正确的写法应该是select CONCAT(ifnull(null,''),"aaaa");...
2018-12-20 17:02:43 5201
原创 设置springboot自带tomcat的最大连接数和最大并发数
从源代码来看,最大连接数和最大并发数默认是10000和200可以通过工程下的application.yml配置文件来改变这个值server: tomcat: uri-encoding: UTF-8 max-threads: 1000 max-connections: 20000...
2018-11-09 15:48:24 104283 8
原创 字符串类型的list,根据字符串长度来排序
import java.util.Comparator;public class SortByLengthComparator implements Comparator<String> { @Override public int compare(String var1, String var2) { if (var1.length() > var2.lengt...
2018-10-11 14:27:21 10322 2
原创 mysql where in带2个参数的查询方式
数据结构如下下面两句的查询结果都是一样的SELECT idFROM t3WHERE (n1, n2) IN ( SELECT n1, n2 FROM t3 WHERE id <= 2 )------------------------------------------------------SELECT idFROM t3WHER...
2018-07-05 12:20:28 13619
原创 多线程调用单例模式的类的同一个方法,是不是需要排队调用?
最近在研究多线程,突然想到一个问题,“多线程调用单例模式的类的同一个方法,是不是需要排队调用?”,比如有10个线程同时调用一个单例模式类的同一个方法,他们是第一个调完再轮到第二个调,还是10个线程同时可以调用这个方法?想出这种问题肯定是对java的基础知识掌握的不好,在网上找了很多帖子,但看下来都很懵懂,也发现有很多人和我有一样的问题,所以我自己写了代码,模拟这种情况,代码如下。1.单例模式的类p...
2018-06-21 19:36:22 12427 6
原创 通过url获取视频的时长
最近项目中遇到一个问题,需要保存上传视频的时长,但以前上传的时候数据库都没有保存这个数据,所以现在要更新这个字段。一开始想通过java代码来实现这个功能,但百度了很久,只有一种方法,那就是先要下载到本地,然后再一个一个的遍历查询。觉得这种方法如果是小视频还行,大视频的话就太花时间了。于是想到了通过html5的video标签来实现这个功能。下面就先说一下基本思路:1.后台先把需要查询
2018-01-15 13:27:59 17878 3
原创 ionic结合angularjs实现跳转到上个页面的功能
虽然ionic已经出来很长一段时间了,但网上的资料依然很少,最近项目中有个很简单的功能要实现,就是返回上个页面,看了一些例子,但都不理想,最简单的一个方法是通过$ionicHistory.goBack();的方法来返回上一页,但用下来发现会有问题,常常挑错页面,于是自己研究了一个方法,效果还不错,和大家分享一下。1.首先是页面,在头上加个返回按钮,代码如下
2016-08-18 17:25:14 12619 1
原创 angularjs初学者知识点总结1:对于不同module间的依赖注入
1.第一个module里定义一个factoryangular.module('myApp1', []).factory('Chats', function() { return{ all: function() { return '123'; } }});2.第二个module里定义一个controller,在这个controller里
2016-07-15 16:28:10 5019
browser-md5-file-1.0.0.zip
2020-11-04
java写的把数据库表转文档(word或excel)
2020-09-15
jseclipse.rar
2020-08-12
net.sf.jadclipse_3.3.0.jar和jad.exe.rar
2020-06-24
供销SSM+Mysql.zip
2019-05-23
jai_codec.jar jai_core.jar jai-imageio-1.1.jar
2015-02-27
HoverEx-jQuery鼠标悬停在图片上显示说明按钮插件
2015-02-06
TortoiseSVN 1.7.6
2014-09-28
简单的记事本
2014-07-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人