自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhouxukun123的专栏

点滴记录,更新人生

  • 博客(198)
  • 资源 (3)
  • 论坛 (1)

原创 MongoDB批量更新文档字段方法

MongoDB批量更新文档字段方法一、字段拼接指定字符db.collName.find().forEach( function(e){ db.collName.update({'_id': e._id}, {'fieldName' : e.fieldName+ 'xxx'}}, false, true) })二、字段替换指定字符db.collName.find().forEach( function(e){ db.collName.update({'_id': e._

2020-09-22 22:53:38 36

原创 MySQL A表的字段值更新为B表的字段值

MySQL数据库涉及到多表更新方法方法一通过子查询关联UPDATE tableA a set a.b_rel_field = (SELECT b.id from tableB b where a.name = b.name);方法二使用逗号操作符的内连接UPDATE tableA a, tableB b SET a.price=b.priceWHERE ia.id = b.id;方法三使用SELECT语句中允许的任何类型的联接,比如内连接,左连接update tableA a

2020-07-31 23:55:10 235

原创 基于MySQL正则表达式实现类似全库搜功能

一 需求项目要做一个类似Elasticsearch全库搜的小功能,但是数据存放在MySQL里面,数据量不是很大,使用模糊查询性能也还可以接受。一开始想直接用like,但是为了支持多个关键字查询,用like的话要循环字段进行拼装成如下的SQL语句:SELECT * from tableName WHERE field_a like '%关键字1%' OR field_a like '%关键字2%' OR field_a like '%关键字3%' OR field_b like '%

2020-06-30 21:58:11 63

转载 SpringBoot 启动机制

一、前言二、起步依赖三、自动配置1.基于java代码的bean配置2.自动配置条件依赖3.Bean参数的获取4.Bean的发现5.Bean 加载四、总结一、前言springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程。本文的目的就是一步步分析springboot的启动过程,这次主要是分析springboot特性自动装配。那么首先带领大家回顾一下以往我们的web项目是如何搭建的,通常我们要搭建一个基于Spring的Web应用,我们需要做以下一些工作.

2020-05-31 16:05:28 74

原创 SpringBoot web项目配置Https双向认证启动报错:InvalidAlgorithmParameterException

一 问题如下:server: tomcat: ... port: 9698 http-port: 9697 ssl: key-store: server.p12 key-store-password: 123456 key-store-type: PKCS12 key-alias: server enabled: true ...

2020-04-29 23:52:45 157

原创 spring data jpa hql 默认的查询总数和SQL语句返回的条数不一致

一 问题spring data jpa hql 默认的查询总数和SQL语句返回的条数不一致,SQL语句如下:select distinct(a.group_id) from table_a aleft join table_b b on b.id = a.goup_idwhere a.state = 1 order by b.create_time desc;其中,table_a ...

2020-03-29 23:56:33 801

转载 实现线程顺序执行的各种方法总结

一、实现方法总览使用线程的 join 方法使用主线程的 join 方法使用线程的 wait 方法使用线程的线程池方法使用线程的 Condition(条件变量) 方法使用线程的 CuDownLatch(倒计数) 方法使用 CyclicBarrier (回环栅栏)实现线程按顺序执行使用线程的 Sephmore(信号量) 实现线程按顺序执行二、具体实现我们下面需要完成这样一个应用...

2020-02-29 23:20:39 60

原创 WdatePicker 限制选择最小最大日期

1 需求限制最小、最大日期选择,如最小日期只能选择上一年度日期,最大日期只能选择到当天日期。2 解决使用WdatePicker日期插件,设置minDate、maxDate,代码如下:<div class="form-group"> <label class="col-sm-2 control-label">日期<span class="red">*&l...

2019-12-31 22:56:26 1141

原创 前端传json数组参数,后台以List<DTO>接收

1 需求将前端选择的jqGrid多行记录作为参数传递至后台并保存。2 问题直接将json数组传递给后台,报415错误,说明前后台参数类型不匹配。3 解决查阅资料后,发现是没有设置contentType,修改后的代码如下:function addItems() { // 检查是否选择了数据 var selectedItems = $("#tableId").jqGrid("selec...

2019-11-30 21:40:41 2654

原创 监听input输入框值的变化,属性为readOnly的日期选择框

1 需求对日期选择框值的变化进行监听,当日期值不满足限定的范围时弹出提示:&lt;div&gt; &lt;label&gt;起始日期&lt;span class="red"&gt;*&lt;/span&gt;&lt;/label&gt; &lt;div style="width: 185px"&gt; &lt;input id="startTime" name="startTime" ...

2019-10-31 23:52:47 750

原创 zookeeper 可视化日志文件报错:java.lang.NoClassDefFoundError: org/apache/jute/InputArchive

zookeeper 版本:3.5.51 问题zookeeper 查看日志/快照文件,执行日志可视化命令:# 查看快照文件java -cp ../../zookeeper-3.5.5/lib/zookeeper-3.5.5.jar;../../zookeeper-3.5.5/lib/slf4j-api-1.7.25.jar org.apache.zookeeper.server.Snaps...

2019-10-29 23:27:26 820

转载 MySQL 列转行用法实现

需求需要将如下所示原始表数据转为结构化的数据按行显示:转为结构化数据:解决方法如果是单条记录通过SUBSTRING_INDEX容易实现,SQL语句如下:select name,SUBSTRING_INDEX(accounts,',',1) account from personAccounts where id=1UNIONselect name,SUBSTRING_INDEX(...

2019-09-30 23:13:37 143

原创 #1093 - You can't specify target table 'tablename' for update in FROM clause 解决办法

MySQL版本:5.7.20操作表数据结构如下:一 需求将下级部门和上级部门关联,更新下级部门的parent_id 字段为上级部门的id字段值,SQL语句如下:UPDATE department set parent_id= (select id from department where department_name = 'dep_1')where department_leve...

2019-08-18 17:21:21 247

原创 MySQL生成32位UUID

有时MySQL数据库某些表的ID需要使用UUID值(由一组32位数的16进制数字所构成)作为唯一识别码。可以通过MySQL自带的UUID() 函数来生成:select UUID();结果为:0a3eed30-9ad5-11e9-9835-b8ee6591991d这样获取的是带 “-” 分隔符的UUID,32位字符加上分隔符共36位,不符合要求,可以通过replace() 函数对获取到的U...

2019-06-30 09:36:49 3022

原创 Text file busy问题解决

1 问题在服务器上停掉jar包服务后,重新开始服务时报如下错误:-bash: /xxx/appService.jar: bad interpreter: Text file busy2 原因在执行service appService stop 时,本意是节省时间,在服务还未完全停止时,就通过ftp替换对应的jar包,此时ftp上传jar包处于阻塞状态,当时不明所以,就停止上传文件,但此时...

2019-05-18 22:39:09 5518

原创 Java8 stream数组转List

双重检查锁(Double-checked Locking)可以降低直接使用synchronized同步共享资源带来的性能开销,使用DCL实现延迟加载的代码如下:1 public class DoubleCheckedLocking {2 private static Instance instance;3 public static Instance getInstance() {4 ...

2019-05-04 20:26:56 1957

原创 ECharts折线图设置Y轴label是否显示及自定义X轴label

需求因为所展现的结果值是整数,而Y轴label随鼠标上下移动时,label会显示小数,所以想把label去掉,同时X轴的label想用自定义的label(数值后加上单位)。解决方法查看ECharts官网API的坐标轴属性设置,可以通过yAxis.axisPointer.label设置实现需求。注:tooltip.axisPointer.type 设置为 ‘cross’ 则默认显示标签,否...

2019-04-21 22:17:21 7186

原创 SpringBoot 接收远程服务器传递的字符串参数中文乱码

问题通过SpringBoot 接收远程服务器推送的数据(json字符串),传递的字符串参数中文乱码,英文、数字显示正常,中文全部显示为‘?’号。解决对方发送的编码方式为UTF-8,所以接收数据的时候也设置编码格式,在springboot中可以通过@RequestMapping注解的produces参数进行设置,如下:@RequestMapping(value = "/receiveData...

2019-03-31 08:48:35 5421

原创 通过反射获取实体对象的属性及对应的属性值

需求需要获取实体对象的属性及属性值作为key-value形式的NameValuePair参数,用于post请求的参数,为了避免一大段的get代码,考虑使用反射方式进行设置,示例代码如下:public class Person { private String name; private String sex; private String phone; pub...

2019-03-23 21:45:49 1475

原创 快速排序算法存在的问题及改进

一、存在的问题当数组长度较小时,不比其他排序算法高效,如插入排序;当数组为有序数组时,或者所选中轴数每次都是最小或最大的元素,造成每次分区都只有一个分区(每次分区后规模都只减1),得到最坏时间复杂度O(n^2)二、改进对于快排存在的问题,对应的改进方法如下:1.当划分到较小的子数组时,通常可以使用插入排序替代快速排序此时可以设定一个快排分区的阈值,当待排数组分区后的长度小于阈值时改...

2019-02-28 00:11:37 1308

原创 实现快速排序算法的另一种思路

一、快速排序算法快速排序的基本思想如下:从数组中取出一个数作为中轴数(pivot)划分数组:将比这个数大的数放到它的右边,小于或等于它的数放到它的左边再对左右区间重复上述步骤,直到各区间只有一个数二、实例排序分析样本数据:{5,8,4,3,2,5,7,9}中轴数pivot: 一般取待排序序列的第一个目标: 交换后, 中轴数左边的数要全部小于中轴数, 其右边的数要全部大于等于中...

2019-02-27 23:34:31 132

原创 通过链表实现一个栈

栈是一个先进后出的数据结构,本篇文章使用链表来实现一个栈。一、定义栈的方法接口这里定义了栈的几个主要方法:public interface IStack&amp;lt;E&amp;gt; { /** * 栈元素大小 * @return */ int size(); /** * 是否为空 * @return */ b...

2019-02-24 22:17:34 416

原创 通过数组实现一个栈

栈是一个先进后出的数据结构,所以实现栈就抓住栈的该特性,当然使用数组实现栈,需要考虑扩容问题,如果使用链表来实现的话就没有扩容问题了。一、定义栈的方法接口这里定义了栈的几个主要方法:public interface IStack&amp;amp;amp;lt;E&amp;amp;amp;gt; { /** * 栈元素大小 * @return */ int size(); /** ...

2019-02-01 10:04:32 391

原创 ABA问题及其解决方法

一、ABA问题的产生CAS 在修改变量值时,会先检查该变量的值是否和预期值一致,若一致则修改,引发的ABA问题的情况是:如一个变量初始值为A,被另外一个线程修改成B,再由B修改为A,此时使用CAS进行操作就检查不出变量的变化轨迹,并对该变量修改,这就是ABA问题,其前提条件是“节点可以被循环使用”。下面通过例子来模拟ABA问题:public class Node { public f...

2019-01-31 23:47:40 1304

原创 CAS实现原子操作的三个问题

在java中,如果要进行原子操作,我们可以通过加锁或CAS的方式来实现。其中,CAS虽然高效的解决了原子操作,但需要注意其存在的三个问题:ABA问题、自旋时间长开销大、只能保证一个共享变量的原子操作。一、ABA问题快速排序算法是对冒泡排序的一种改进。快排基本思想是:通过一趟排序将要排序的数据以基准数据分割成独立的两部分,其中一部分的所有数据都比基准数据小,另外一部分的所有数据都比基准数据大,...

2019-01-30 23:38:08 353

原创 一个例子搞懂快速排序算法

一、快速排序算法快速排序算法是对冒泡排序的一种改进。快排基本思想是:通过一趟排序将要排序的数据以基准数据分割成独立的两部分,其中一部分的所有数据都比基准数据小,另外一部分的所有数据都比基准数据大,然后再通过递归对这两部分数据分别进行快速排序,实现整个数据变成有序序列。二、实例排序步骤分析样本数据:45 23 68 88 55 12 100 9基准数: 一般取待排序序列的第一个目标: ...

2019-01-06 19:03:27 2162

原创 java 无法仅仅依靠返回值的不同对方法进行重载的原因

对于java 程序员来说,都知道或听过java 无法仅仅依靠返回值的不同对方法进行重载,但具体原因是什么呢,在《深入理解Java虚拟机 JVM高级特性与最佳实践》class类文件的结构-方法表集合这一章节给出了具体的原因(原文可参考6.3.6小节)。重载一个方法时,必须确保有一个与原方法不同的特征签名,特征签名就是方法中各个参数在常量池中的字段符号引用的集合。从这句话中可以看到特征签名里面不包...

2018-12-31 17:41:00 373

原创 java wsimport命令生成WSDL文件描述的接口类

通过webservice做数据对接时,由于公司的网络和对方网络连不通,访问不了对方提供的webservice链接,为了先了解对方的接口方法,可以根据WSDL文件生成接口。jdk 提供了一个wsimport命令,可以实现该需求。用法: wsimport [options] &amp;lt;WSDL_URI&amp;gt;在cmd命令窗口切换到wsdl文件所在目录,执行即可,命令如下:&amp;gt;wsimport...

2018-12-31 17:09:45 449

原创 list集合排序-lambda表达式实现

需求从数据库中查询并汇总后的数据列表(list)在界面展示时需根据升序/降序按钮进行排序,普通实现代码如下:/** * list 排序 * @param list * @param sidx 排序列名 * @param sord 排序方式 */private void sortList(List&amp;amp;amp;lt;Map&amp;amp;amp;lt;String, Object&amp;amp;amp;gt;&amp;amp;amp;gt; list, fina

2018-12-27 23:35:16 826

原创 Java 保存 oracle CLOB 类型字段并插入数据库

要将clob类型字段插入Oracle,需要通过字符流进行处理,处理如下:...String fieldValue = &quot;testClob,testClob,testClob,testClob,testClob&quot;; // 转成流形式 Reader reader = new StringReader(fieldValue);preparedStatement.setCharacterStre...

2018-12-16 22:16:49 1155

原创 Oracle批量插入数据报executeBatch异常:ArrayIndexOutOfBoundsException

1 问题使用PreparedStatement向 Oracle 10g数据库批量插入数据时,当插入2万条数据后,出现异常java.lang.ArrayIndexOutOfBoundsException,具体信息如下:java.lang.ArrayIndexOutOfBoundsException: -32413 at oracle.jdbc.driver.OraclePrepare...

2018-11-25 17:18:25 1440 1

原创 Oracle user_tab_columns视图查询表结构信息

1 问题使用 user_tab_columns 视图查询 Oracle 数据库指定用户实例下的所有表结构信息,但是发现有些表字段顺序和数据库中的表字段顺序不一致,而业务需求上是要求一致的。当前数据库用户的表结构是从另一机器上备份导入的,然后用该视图去原数据库用户下查询相应的表,原库下查询的结果和数据库中表字段顺序一致。2 解决方法加上 column_id 升序排列就可以保证与原表字段顺序一...

2018-11-22 23:52:26 5269 3

原创 Oracle 手动删除表空间的datafile导致数据库用户连接不上

1 问题因为要向Oracle 10g数据库中批量插入50亿左右的大量数据,因为一开始没了解清楚Oracle的存储机制,为了避免每次表空间无法再自动扩展时再去添加数据文件,所以一次性的将90%多的磁盘空间都用于表空间的序列datafile。但程序没运行多久就报“ORA-00257: 归档程序错误”。查看磁盘空间发现空间只剩余不到10M空间了,因为插入大量数据,日志归档同样需要较大的空间。网上查...

2018-11-20 00:21:59 645

原创 ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展

1 问题向Oracle 10g数据库中批量插入数据,当插入近2亿条数据后,报出如下错误:ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展。查看表空间,发现表空间大小已达到32G,但创建表空间时已设置了无限扩展(初始空间为20G),磁盘空间没满,说明表空间无法进行自动扩展了。2 原因查找资料了解到Oracle 10g 单个表空间数据文件的最大值为:最...

2018-11-18 12:15:21 3146

转载 MySQL索引背后的数据结构及算法原理

原文:MySQL索引背后的数据结构及算法原理摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂...

2018-11-17 17:13:05 149

原创 MySQL 通过子查询批量插入数据

1 需求需要将 a 表的数据插入 b 表,其中 a 表的数据很多是冗余的,是原始的多级分类数据,b 表相当于是对 a 表的简化,去掉冗余的数据,两表的 pdm 如下图:2 方法将 a 表的各级编码、名称无重复的插入 b 表,并设置对应的级别,通过子查询批量插入无重复数据的SQL如下:INSERT into category_b (id, name, level) select D...

2018-10-30 22:29:35 5390

原创 多线程查询MySQL大数据量单表导致OOM及线程卡死

1 需求对数据进行迁移,需要将MySQL中的一张大表数据(亿级)读出并插入另一个数据库。2 问题对数据分组后,然后开启对应个数的线程,每个线程处理一个分组数据的任务(每个分组后的数据量从几十万至千万级),最初思路是从原库取出1000条数据后,再进入入库,设置了PreparedStatement 的 fetchSize为1000, 但是很快就报“ java.lang.OutOfMemoryEr...

2018-10-28 20:14:36 3504

原创 Echarts柱状图tooltip超出外层div部分被挡住

1 问题类别字段ctgr中的值是连在一起的,入库时需要分割开来,方便查询。数据如下所示:option = { title : { text: '世界人口总量', subtext: '数据来自网络' }, tooltip : { trigger: 'axis' }, legend: { da...

2018-10-27 23:14:37 7271 1

原创 MySQL 按指定分隔符截取字符串函数substring_index

需求需要显示人员及其所有的社交账号处于同一行。表结构如下:解决方法SELECT hi.houseCode,SUBSTRING_INDEX(hi.houseCode,’-’,1) AS lou,SUBSTRING_INDEX(SUBSTRING_INDEX(hi.houseCode,’-’,2),’-’,-1) AS men,SUBSTRING_INDEX(hi.houseCode,’-’...

2018-10-27 22:38:37 5172

原创 获取滚动条当前位置

获取滚动条当前位置 scrollTop() 方法

2018-09-30 23:49:38 4210

构造小波基

% 此程序实现构造小波基 % wavelet_function.m function wavelet_function; clear;clc; % global MOMENT; % 消失矩阶数 % global LEFT_SCALET; % 尺度函数左支撑区间 % global RIGHT_SCALET; % 尺度函数右支撑区间 % global LEFT_BASIS; % 小波基函数左支撑区间 % global RIGHT_BASIS; % 小波基函数右支撑区间 % global MIN_STEP; % 最小离散步长 % global LEVEL; % 计算需要的层数(离散精度) % global MAX_LEVEL; % 周期小波最大计算层数

2012-09-25

Daubechies小波

Daubechies小波程序 % 此程序实现构造小波基 % periodic_wavelet.m function ss=periodic_wavelet; clear;clc; % global MOMENT; % 消失矩阶数 % global LEFT_SCALET; % 尺度函数左支撑区间 % global RIGHT_SCALET; % 尺度函数右支撑区间 % global LEFT_BASIS; % 小波基函数左支撑区间 % global RIGHT_BASIS; % 小波基函数右支撑区间 % global MIN_STEP; % 最小离散步长 % global LEVEL; % 计算需要的层数(离散精度) % global MAX_LEVEL; % 周期小波最大计算层数

2012-09-25

疯狂Java:突破程序员基本功的16课

在本书中,作者一改枯燥的教学方式,专门面向java初学者可能会遇到的各种学习问题,由点及面,详细讨论了java内存管理、java编程过程中常遇陷阱、常用数据结构的java实现和java程序开发的方法与经验等内容。

2017-12-31

joexk的留言板

发表于 2020-01-02 最后回复 2020-01-02

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