自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java服务端使用freemarker+wkhtmltoimage生成Echart图片

如果生成的图片和原html不一样,或转化错误,可以尝试将js或css代码改为较原始的版本.wkhtmltopdf / wkhtmltoimage 官网已经。2.1 下载 wkhtmltoimage。FreeMarker 中文官方参考手册。

2024-01-25 14:23:25 664

原创 opengauss-高斯数据库的安装部署及MySQL数据迁移实战.

opengauss是华为基于PostgreSQL魔改的数据库。本文介绍轻量版的安装。

2024-01-17 16:31:38 984 2

原创 mybatis 集成pagehelper 分页前查询总量方式,是包含原sql,在外面添加 select count(0) from();或者将查询的列替换为count(0).

项目线上随着业务量的增加,数据量增大,个别表上十万/百万,然后部分复杂sql就会变得很慢.并且发现了一个奇怪的问题.有些sql通过 pagehelper 分页,查询总量时,将查询的列替换为count(0) 查询总量.例如:原查询sql:getDemoList:select id, name, key_word, punch_time, salary_money, bonus_money, sex,

2020-10-14 17:12:07 3015 1

原创 ReentrantReadWriteLock(重入读写锁)

ReentrantReadWriteLock先写一段原始代码public class Demo3 { //共享变量 static int count = 0; public static void readMethod() { try { // 为了展示出多线程同时操作同一数据会出现问题。如果去掉之后可能会正常计算出数据 Thread.sleep(1); .

2020-06-30 12:18:18 196

原创 ReentrantLock(重入锁)

ReentrantLock先看一段程序:public class DemoT { // 定义一个共享变量 private static int count = 0; // 用来操作共享变量的方法 public static void inc() { try {// 为了展示出多线程同时操作同一数据会出现问题。如果去掉之后可能会正常计算出数据 Thread.sleep(1);

2020-06-30 11:19:33 151

原创 多线程线程安全之保证可见性

在单线程的环境下,如果向一个变量先写入一个值,然后在没有写干涉的情况下读取这个变量的值,那这个时候读取到的这个变量的值应该是之前写入的那个值。这本来是一个很正常的事情。但是在多线程环境下,读和写发生在不同的线程中的时候,可能会出现:读线程不能及时的读取到其他线程写入的最新的值。这就是所谓的可见性 1.引出问题 一个测试代码: public static boolean stop = false; public static void main(String[] args) t

2020-06-29 17:24:07 1241

原创 java-锁得升级(概念):偏向锁--轻量级锁--重量级锁

偏向锁:在大多数情况下,锁不仅仅不存在多线程的竞争,而且总是由同一个线程多次获得。在这个背景下就设计了偏向锁。偏向锁,顾名思义,就是锁偏向于某个线程。 当一个线程访问加了同步锁的代码块时,会在对象头中存储当前线程的ID,后续这个线程进入和退出这段加了同步锁的代码块时,不需要再次加锁和释放锁。而是直接比较对象头里面是否存储了指向当前线程的偏向锁。如果相等表示偏向锁是偏向于当前线程的,就不需要再尝试获得锁了,引入偏向锁是为了在无多线程竞争的情况下尽量减少不必要的轻量级锁执行路径。(偏向锁的目的是消除数据在

2020-06-28 17:23:47 223

翻译 高性能MySql第三版 阅读简记(3)

调用EXPLAIN要使用EXPLAIN,只需在查询中的SELECT关键字之前增加EXPLAIN这个词。例如:explain select * from demo; 认为增加EXPLAIN时MySQL不会执行查询,这是一个常见的错误。事实上,如果查询在FROM子句中包括子查询,那么MySQL实际上会执行子查询,将其结果放在一个临时表中,然后完成外层查询优化。它必须在...

2020-04-30 16:51:22 205 1

翻译 高性能MySql第三版 阅读简记(2)

第4章 Schema与数据类型优化4.1 选择优化的数据类型4.1.3 字符串类型VARCHAR和CHAR类型VARCHAR和CHAR是两种最主要的字符串类型。不幸的是,很难精确地解释这些值是怎么存储在磁盘和内存中的,因为这跟存储引擎的具体实现有关。下面的描述假设使用的存储引擎是InnoDB和/或者MyISAM。如果使用的不是这两种存储引擎,请参考所使用的存储引擎的文档。先看看...

2020-04-15 17:06:06 135

翻译 高性能MySql第三版 阅读简记(1)

第4章 Schema与数据类型优化4.1 选择优化的数据类型MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。不管存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择。更小的通常更好。一般情况下,应该尽量使用可以正确存储数据的最小数据类型(1) 。更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。但是...

2020-04-15 16:50:30 202

转载 Oracle12c ORA-65114:容器中的空间使用率太高

-- 天工作中,发现Oracle12c数据库中有2个表空间使用率比较高,于是按照常规做法进行相关表空间的扩展:alter database datafile '/app/oradata/zsdb/zsdb/xxxx.dbf' resize 20480m;-- 执行后,报错ORA-65114:容器中的空间使用率太高。 通过查看官方文档有如下描述:ora-65114:space usa...

2019-12-04 10:07:45 2139

原创 ORACLE使用批量插入测试数据

1.建表语句CREATE TABLE test_data( ID varchar(32), NAME1 int(9), NAME2 varchar2(100), NAME3 varchar2(100));COMMENT ON TABLE test_data IS '测试表';2.查询测试:新建成功,无数据3.使用sql语句块批量添加10000...

2019-12-02 11:00:55 1287

原创 使用"merge into",ORACLE批量更新优化,将A表字段的值,变更为B表字段值.

1.建测试表语句CREATE TABLE MERGE_DATA_DEMO1( ID1 VARCHAR2(32), NAME1 VARCHAR2(100));COMMENT ON TABLE MERGE_DATA_DEMO1 IS '测试merge函数demo1表';CREATE TABLE MERGE_DATA_DEMO2( ID2 VARCHAR2(32)...

2019-12-02 10:15:49 1469

原创 oracle存储过程实例,根据value字段信息变更name字段信息

建表插入数据语句CREATE TABLE demo( id varchar2(32), name varchar2(100), value varchar2(100)); INSERT INTO "NEW_TEMP"."DEMO" ("ID", "NAME", "VALUE") VALUES ('1', '', 'c,d,a,b,a'); INSERT INT...

2019-08-08 12:47:49 356

转载 Oracle中REGEXP_SUBSTR函数(实现split 功能)

题目如下:在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','23'的集合。REGEXP_SUBSTR函数格式如下:function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr :需要进行正则处理的字符串__pattern :进行...

2019-08-07 10:55:59 1380 1

转载 spring mvc 通过aop记录请求数据和响应数据

本文为转载文章,转载地址:https://www.cnblogs.com/wujf/p/8337832.htmlpackage com.chxc.filter;import java.util.Arrays;import java.util.Map;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.la...

2019-05-18 17:46:23 1361

原创 mysql 死锁问题

在线上发现了死锁问题,排查解决之后,根据其原因写了一个demo,记录一下。一:DEMO代码 /** * 数据插入 */ @RequestMapping("/test3") @Transactional public void test3() { UEmployee uEmployee = new UEmployee();...

2019-05-14 10:42:09 450

原创 Excel导出/导出工具类(POI)

在项目中多次操作poi来做导入导出操作,然后整理了两个工具类,一个导入,一个导出.方便之后的使用.一.工具类代码:package com.chcx.excel;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.po...

2019-05-08 10:03:55 635

转载 java操作图片工具类;功能包括:缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等

import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.Toolkit;import java.awt.colo...

2019-03-16 16:59:20 690

原创 java 使用Qrcode 生成“有图片、无图片”两种类型 二维码

二维码分为两种,一种是 中心有logo的,一种是无logo的,只有二维码内容这里提供一个工具类,测试类1.工具类,(工具类中有相关注解,就不解释什么意思了)package com.jeecg.demo.utils;import com.swetake.util.Qrcode;import org.apache.commons.lang3.StringUtils;import...

2019-01-23 10:43:46 944

原创 重要.唯一字段,怎么确保获取"唯一"流水号

 流水号,一般是组成编号的一部分,用来实现计数,以及使编号唯一,一:采用redis.incr获取可以采用使用redis的 "incr"方法获取,不过有个局限性,就是redis不可删除缓存,如果删除掉之后,会将编号清零,重新计数(附redis工具类),只要传入的"str"不变,获取到的数字会一直递增public class RedisUtil { private stat...

2019-01-21 17:29:31 1508

原创 服务后端实现 多数据源

这里主要叙述多数据源相关配置和代码,(注:和多数据源无关的 类似与事务/引入,这些就不啰嗦了,可以查看其他类似博文)1.首先是启动文件:在 "spring-mvc.xml" 或者其他 相关项目启动就会运行的 配置文件中 配置数据源 ,这里配置了两个数据源,分别为"dataSource_jeecg",和"dataSource_two",可以两者之前进行切换, <!-- 引入...

2019-01-21 14:02:58 444

原创 对ArrayList中的对象实现字典排序

直接上代码1.测试类public class ListSortTest { public static void main(String[] args) { List<Demo> list = new ArrayList<Demo>(); Demo demo = new Demo("1", "b23"); ...

2019-01-21 11:34:54 975

原创 阿里云服务器,从买入到启动服务(新手级)(四):添加tomcat,启动服务

1.将linux版tomcat 上传至 服务端,2.将搭好的war包上传至服务端[注:如果不知道怎么上传文件到服务端,可是尝试使用 xshell中有个小工具,上传下载很好用,xftp]3.解压tomcat,将war包放在tomcat的webapp目录下.4.默认的访问地址为8080,如果想要变更端口号的话,可以修改conf/server.xml文件,将其中的 8080端口号变更...

2019-01-18 17:28:57 486

原创 阿里云服务器,从买入到启动服务(新手级)(三):安装mysql,并在本地远程链接

因为我买的服务是unbutu 所以只需要简单的几步命令就可以安装  ubuntu上安装mysql非常简单只需要几条命令就可以完成。  1. sudo apt-get install mysql-server   2. apt-get isntall mysql-client   3.  sudo apt-get install libmysqlclient-dev安装过程中会提...

2019-01-18 17:14:36 284

原创 阿里云服务器,从买入到启动服务(新手级)(二):在linux中安装环境JDK

 1. 下载JDK 先查看Linux系统是多少位(32位/64位):getconf LONG_BIT 然后去官网下载JDK 查看是否安装过java    rpm -qa | grep java    如果是centos 一般会自带两个openjdk    rpm -e --nodeps 要卸载的包 (包通过上面的指令可以获取到)]    先卸载7 再卸载6 2. 解压安装2.1选...

2019-01-18 16:57:10 268

原创 阿里云服务器,从买入到启动服务(新手级)(一):使用Xshell连接linux服务

从阿里云买了服务器之后,阿里云会发送到你的关联手机上一条短信:类似下图,如果短信丢失或者其他原因找不到的话,可以登录阿里云官网查询对应的ip以及其他详情信息,也可修改密码.如下图 重点是IP/用户名/密码得到这三样之后,下载一个Xshell软件,安装时会提示是收费版和免费版,视自己情况而定选择对应选项,安装!安装完成之后打开,1.新建2.填写对应信息,名称,协议使用...

2019-01-18 16:49:53 831

原创 echarts简单图表使用(二)-异步加载数据

之前数据是在初始化后setOption中直接填入的,但是很多时候可能数据需要异步加载后再填入。ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就行。可以先设置完其它的样式,显示一个空的直角坐标轴,然后获取数据后填入数据。前端代码:<%@ page contentType="text/...

2018-06-26 11:56:22 687

转载 echarts简单图表使用(一)-图表的展现

    ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。    ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图......等等,暂...

2018-06-21 18:12:06 440

原创 将list集合平均分成几等份

啥都不说,直接上代码: /** * @param num 分的份数 * @param list 需要分的集合 */ public Map<String, List<String>> splitList(List<String> list, Integer num) { int listSize = lis...

2018-06-21 14:36:00 14448 4

原创 cpu飙升,排查经历。

    一个合作公司,项目是使用nginx和两台tomcat负载,其中一台服务器cpu飙升,然后导致部分用户访问页面很卡,超时,甚至500。    解决经历:    将nginx配置文件更改,取下来那台cpu很高的服务器。用户这时可以正常使用,现在专心排查问题。    使用ps -ef | grep java 命令得到java进程号,然后使用top -H -p java进程号 命令得到当前进程使用...

2018-06-21 11:59:52 2921 2

原创 SimpleDateFormat显示24小时和12小时时间格式

public static void main(String[] args) throws Exception { MainTest1 mainTest1 = new MainTest1(); mainTest1.dateFormat(); }yyyy-MM-dd HH:mm:ss格式显示的时间为:2017-06-12 18:01:06...

2018-06-12 12:09:54 26741 2

原创 页面传递字符串,在控制层直接赋值给实体类实现过程(本月,本季度,本年度)

    在页面上展示时间段,并且以单个字符串传递给后端,在后端实体类set()中实现赋值.三个时间段分别代表:if ( timeFlage== 'thisMonth') { url = url + "&timeFlage=thisMonth";//本月}if (timeFlage == 'thisQuarter') { url = url + "&timeFlage...

2018-06-11 18:21:52 361

原创 mysql 中的CASE-WHEN-THEN-END

mysql中见到的比较特别的sql函数语句,拿出来记录下来SELECT CASE p.purcategory WHEN 'A' THEN '工程类' WHEN 'B' THEN '货物类' WHEN 'C' THEN '服务类' else '其他类' END AS purcategory FROM prij...

2018-06-08 11:51:44 300

原创 漏洞CSRF修改个人资料和编辑器存储型xss漏洞

在某个产品上,客户的安全部门测试出了两个漏洞,一个是CSRF修改个人资料另一个是编辑器存储型xss漏洞先说CSRF,这个大概情况是这样:    分为两个用户,一个正常用户(A),一个非法用户(X)。    A正常的访问系统,点击编辑用户信息,修改,提交,这时会向服务器发送一条请求。这时X拦截到了这条请求,使用工具编辑信息,并且发送向服务端。    服务端会分别正常执行A X 两个用户的请求。   ...

2018-03-28 22:22:49 592

转载 Oracle时间戳转化为日期格式

SELECT TO_CHAR(时间戳的那一列 / (1000 * 60 * 60 * 24) +         TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS') AS CDATE  FROM 表名 ;  SELECT TO_CHAR(f_create_time / (1000 * 60...

2018-03-16 17:17:05 27559

转载 几种常见加密算法

由于计算机软件的非法复制,通信的泄密、数据安全受到威胁,解密及盗版问题日益严重,甚至引发国际争端,所以在信息安全技术中,加密技术占有不可替代的位置,因此对信息加密技术和加密手段的研究与开发,受到各国计算机界的重视,发展日新月异。现在我们就几种常用的加密算法给大家比较一下。DES加密算法DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是...

2018-03-16 15:07:10 1129

转载 java 方法调用,形参改变,实参是否发生改变

今天遇见一个面试题,java基础的东西。我竟然给忘了。。。写下来加深一下印象面试题:public class Test1 { public static void main(String[] args) { String a = new String("abc"); int b = 5; int[] c={1,2,3,4}; ...

2018-03-16 14:48:22 7299 4

原创 solr搜索报错,tomcat maxHttpHeaderSize 设置

项目上,大部分用户使用搜索正常,部分用户搜索报500。查看日志:[kbs]22:09:54.253 INFO c.k.service.core.CategoryListService - 权限构建完成,总共耗时: 耗时:331 ms[kbs]22:09:55.652 INFO c.k.service.core.CategoryListService - -------RESTRICTION_...

2018-03-14 23:00:21 3920

空空如也

空空如也

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

TA关注的人

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