- 博客(49)
- 收藏
- 关注
原创 使用mysql报Communications link failure异常解决
线上使用polarDB,基于mysql(5.7),建构为springboot+mybatisplus+durid连接池,部分业务场景涉及大表更新和查询操作,在查询慢sql且超过一定时间时就会报出"Communications link failure"异常,主要体现在界面查询或定时任务处理大批量数据是执行数据库的更新、查询异常。
2024-10-24 14:03:34 328 1
原创 GitLab远程提交注释格式校验
feat 新功能fix 修复docs 文档变更style 代码格式refactor 重构perf 性能优化test 增加测试revert 回退build 打包chore 构建过程或辅助工具变动。
2023-10-28 09:51:29 1086
原创 分布式事务解决方案
严格意义上的事务实现应该是具备原子性、一致性、隔离性和持久性,简称 ACID。分布式事务顾名思义就是要在分布式系统中实现事务,它其实是由多个本地事务组合而成。目前常用和常被提及分布式事务解决方案有五种: 两阶段提交(2PC) 三阶段提交(3PC) 补偿事务(TCC=Try-Confifirm-Cancel) 消息队列(MQ) Sagas事务模型(最终一致性)下面就上述五种方案简单记录原理。二阶段提交两阶段提交2PC是分布式事务中最强大的事务类型之一,两段提交就是.
2022-04-26 10:09:55 2359
原创 深入理解Spring IOC和AOP
Spring IOC依赖反转是意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。是一种设计思想。IOC架构图软件系统中耦合的对象IOC解耦过程IOC和DI关系控制反转(IOC)是Spring框架的实现解耦的核心思想。控制反转一般分为两种类型,一个是依赖注入(DI)和依赖查找(DL),依赖注入应用更广泛。四连问1、谁依赖于谁应用程序依赖于IoC容器2、为什么需要依赖应用程序需要IoC容器来提供对象需要的...
2022-04-26 00:06:46 345
原创 SpringMVC中Controller返回的后续自定义处理
应用范围和场景 和统一异常处理不同,有些时候Controller处理可能需要做后续处理,例如关键字拦截,例如数据脱敏等,使用切面的方式比较复杂,如果Controller里需要后续处理的接口使用的都是@ResponseBody注解,那么实现ResponseBodyAdvice接口将是非常便利的处理方法,当然使用拦截器、HandlerMethodReturnValueHandler接口实现也是几种方法,这里仅示例更简单的ResponseBodyAdvice接口使用实现。应用示例 ...
2021-05-11 19:32:29 790
原创 SpringBoot集成slf4j+log4j并输出到加密密码的数据库
本文根据实战经验复写SpringBoot+slf4j+log4j的日志集成方式,并配置相关控制台、文件、密码加密数据库输出打印等方式。1、SpringBoot项目中的log4j maven相关依赖和原logback(SpringBoot自带)解除: <dependency> <groupId>org.springframewo...
2018-11-30 18:10:35 1837
转载 GIT常用命令格式解析
git init 在本地新建一个repo,进入一个项目目录(项目命名文件夹),执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹. git clone 获取一个url对应的远程Git repo, 创建一个local copy. 一般的格式是git clone [url]. url可以设置为github上的“Clone wi...
2018-11-08 10:50:59 1291
原创 装饰器模式、JDK动态代理和CGLIB动态代理三种AOP实现
AOP即对OOP的补充,面向切面的编程方式增强面向对象思想的功能,概念之类的问题这里不做阐述,直接上代码实现细节,具体原理需要深入源码理解。测试功能,定义一个普通service类,利用AOP不修改原来类代码实现嵌入这个类的日志打印。定义一个DAO接口:public interface DAO { public boolean insert(); public bool...
2018-10-15 10:25:36 742
原创 JAVA模拟高并发及多线程计数器
1、多线程高并发模拟实现可采用闭锁CountDownLatch,设置对应线程数的CountDownLatch,达到就绪条件后会多线程统一执行。这里只是单机模拟,因为线程采用抢占式执行方式,并不能完全模拟统一同时执行。2、多线程计数器可采用悲观锁CAS实现类AtomicInteger等原子操作方法实现。import java.util.concurrent.CountDownLatch;...
2018-10-12 17:26:59 2680 1
转载 LinkedBlockingQueue和ArrayBlockingQueue的区别
源码分析见:https://blog.csdn.net/javazejian/article/details/77410889LinkedBlockingQueue和ArrayBlockingQueue的区别:1.队列大小有所不同,ArrayBlockingQueue是有界的初始化必须指定大小,而LinkedBlockingQueue可以是有界的也可以是无界的(Integer.MAX_...
2018-09-07 10:54:59 587
原创 GIT控制台恢复删除的文件
例如在库的根目录中,先查看本地更改包含被误删的文件列表:git status上图包含了build/build.js和package.js文件。使用 git pull恢复build目录中的build.js文件,查看文件夹,发现无法通过pull命令来恢复。使用命令:git branch -a查看当前分支,如果不在需要恢复的分支上,需要切换到目标分支:git checkout...
2018-08-30 14:53:28 3088
转载 git dev分支合并到master分支并提交
在代码库本地文件夹打开git bash操作或者命令提示符窗口,操作步骤如下。 $ git branch -a #先查看下当前的本地和远程分支* master remotes/origin/HEAD -> origin/master remotes/origin/dev ...
2018-08-09 16:48:30 13606 1
转载 Mabits出现Does not contain value for…错误
Mapped Statements collection does not contain value for后面是什么类什么方法之类的: 错误原因有几种: 1、mapper.xml中没有加入namespace 2、mapper.xml中的方法和接口mapper的方法不对应 3、mapper.xml没有加入到mybatis-config.xml中(即总的配置文件),例外:配置了ma...
2018-07-24 11:41:59 3255 1
原创 Spring MVC获取URL参数及请求参数
只要把什么叫请求路径,什么叫请求参数分清楚,也就能理解@PathVariable和@RequestParam。注意:代码中的RequestMapping地址是SpringMVC注解匹配的同名称请求,如果在类仅仅是注明 @Controller 那么此RequestMapping下的方法方法将会解析所有传给服务后台的page.do操作;如果声明类前先@Controller 并又注明了一个@Reque...
2018-07-24 11:40:52 13596 2
原创 jquery记住表单用户密码示例
function setCookie() { var loginCode = $("#userName").val(); var pwd = $("#password").val(); var checked = $('#remberMe').prop('checked') ? true : false; if (check...
2018-07-24 11:33:07 867
原创 JS禁用退格键防页面返回(不影响表单等编辑)
我们在真实的项目开发中经常会使用JS 对键盘上的一些按键进行禁用,常见的比如说退格键(backspace/ 后退键),防止在非编辑的状态下按了退格键整个界面都返回上以历史页面,这将会导致所有已编辑的数据丢失,所以有必要在这种前端界面屏蔽掉非表单编辑状态下的退格键按键操作。js代码如下:<script type="text/javascript"> ...
2018-07-24 11:27:14 1705
原创 jquery表单校验规则及示例
jquery表单校验,必须引入jquery.validator.js文件。1、js的$(function(){}中初始化校验参数及校验规则;$(function () { var $form = $('#addJobInfo'); var $form = $('#addJobInfo'); $form.validator({ debug: false...
2018-07-24 11:22:37 1348
原创 eova、easyui及普通DOM表单元素操作
-----eova组件$('#jobCron').eovaedit().setText('');$('#invalTime').eovatext().setValue('');var jobCron = $('#jobCron').eovaedit().getValue();var invalTime = $('#invalTime').eovatext().getValue();所有...
2018-07-24 11:19:01 864
转载 CSS或JS路径引用问题
引用外部.css或.js文件的路径问题 jsp或html页面引用外部.css或.js文件时,注意路劲问题,如果设置不当,会引用不到这些外部的文件假设使用下面的目录结构:-webapp |-MyProject 目录 |--WebContent 目录 |---scripts 目录 ---dtree.js 文件 |---styles 目录 ---main.css 文件 ...
2018-07-24 11:11:08 4658
原创 字符图片验证码的java实现
这里仅写出验证码程序的生成方式和Servlet访问应用,具体的应用场景可以变更,例如可以将方法至于单独处理类,供MVC调用等等。import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.Buf...
2018-07-24 11:09:43 248
原创 运行多Tomcat服务端口及标题的设置
一台机器运行多Tomcat的设置:1、Tomcat复制两份分别重命名成tomcat11111和tomcat22222(按需求设置)2、(可选)修改其中一个tomcat中的某些参数,为了避免启动tomcat时出现冲突,编辑bin/startup.bat,在文件第一行添加如下两行 SET JAVA_HOME=C:\websoft\jdk1.6.0_33 (JDK所在路径) ...
2018-07-24 11:01:30 572
原创 Servlet+Ajax实现简单登录验证
具体实现步骤如下: 1.下载jquery库 jquery-1.3.2.js2.把它放在一个web工程webroot目录下面的一个文件夹里面(如 js文件夹里面) 3.编写服务器端的程序: AjaxServlet.java public class AjaxServlet extends HttpServlet { protected void doGet(HttpServl...
2018-07-24 10:48:55 4661
原创 AJAX触发取值或弹窗确认请求返回
ajax触发: $.ajax({ type: 'POST', url: "/jobinfo/loadById", cache: false, async: false, dataType: "json", data: { "ID": oUrlParam["ID"] ...
2018-07-23 17:18:17 3784
原创 Oracle时间点历史数据恢复[回闪]
通过时间点对应数据表状态进行历史数据恢复 这里数据表以cfg_business_adapter为例,数据误删时间为20160923 10:10:00,进行恢复操作如下。1、查询表数据select t.*, t.rowid from cfg_business_adapter t,误删后显示为空。 2、通过时间间隔确定需恢复的时间点,在没有恢复之前, 通过查询该时间点确认数据为删前数据,用...
2018-07-23 17:14:16 16943 2
原创 Maven将依赖多jar的项目打成一个可执行jar
利用maven的assembly插件或者shade插件可实现将依赖多个jar包的项目打成一个jar大jar包。1、将项目依赖的多个jar打入maven仓库中,例如mvn install:install-file -DgroupId=com.bank -DartifactId=UnionNew -Dversion=1.0.0 -Dpackaging=jar -Dfile=d:/UnionNew....
2018-07-23 17:08:57 3941
转载 ORACLE创建Jobs详解及示例
主要的使用情景 定时在后台执行相关操作:如每天晚上0点将一张表的数据保存到另一张表中;定时备份数据库等 这里只简单记述一个创建一个简单的job 步骤如下: 1、创建一张表g_test create table G_TEST ( ID NUMBER(12), C_DATE DATE ) 2、创建一个sequence create sequence G_SEQ minv...
2018-07-23 16:57:39 6176
转载 ORACLE中的char和vchar类型
在Oracle数据表和程序类型中,字符类型可能是使用最多的一种了。从历史上看,Oracle首先推出了固定长度char类型字段,之后才推出了变长度类型varchar2。目前,主流Oracle应用开发都已经普遍接受了varchar2作为数据表字段类型表示。如果存在超长字符,都考虑使用CLOB这类大对象进行存储。但是,我们在实际领域中,还是会在各种遗留系统中发现很多char类型字段。而且...
2018-07-23 16:55:45 2146
原创 ORACLE利用序列实现ID自增
1、仅使用序列产生自增主键序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。当一个序列第一次被查询调用时,它将返回一个预定值。在随后的每次查询中,序列将产生一个按指定的增量增长的值。序列可以循环,或者是连续增加的,直到指定的最大值为止。 创建序列语法如下:c...
2018-07-23 16:53:24 13072
原创 查询重复记录或删除多余重复记录
下面以流水表作为例子。查询重复记录:select t.*,t.rowid from cmbcproxy_app_trans t where t.appseqid in(select b.appseqid from cmbcproxy_app_trans b group by b.appseqid having count(b.appseqid)>1)删除重复记录保留rowid...
2018-07-23 16:49:41 255
原创 JAVA时间戳转为ORACLE时间串
在java中,调用System.currentTimeMillis()获取到系统当前时间的UNIX时间戳是以毫秒为单位的,但是ORACLE中,如果需要将时间戳转为时间或者时间字符串,必须先除以1000,该互转如下。 JAVA获取时间戳:long time = System.currentTimeMillis();ORACLE转换为时间:select ( to_date('1970...
2018-07-23 16:47:43 2361
原创 Oracle 中 decode 函数用法
Oracle 中 decode 函数用法含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE ...
2018-07-23 16:44:43 150703 6
原创 Sql实现分页和JAVA的List实现分页
Sql实现分页和JAVA的List实现分页示例:select x.* from (select rownum as rn, a.* from (select t.jobid, t.logid, t.kddate, t.st...
2018-07-23 16:43:43 912
原创 存储过程查询遍历行数据并判断计算处理
存储过程查询遍历行数据并判断计算处理,业务处理可忽略,主要运用declare cursor……open all_data……loop fetch all_data into row_data……创建定义游标以及循环逐行取数等方式。CREATE OR REPLACE PROCEDURE P_GET_TASKNUM(V_GROUPID in VARCHAR2, ...
2018-07-19 14:35:11 2556
原创 SQL连接查询(Oracle)
sql联表查询select * from kdgs_qrtz_trigger_info t,kdgs_dbgate_task d where t.id=d.job_id; --对等连接,两个表只有满足条件相等的值显示连接的所有字段select * from kdgs_qrtz_trigger_info t join kdgs_dbgate_task d on t.id=d.job_i...
2018-07-19 14:23:55 487
原创 SQL按时间分段分组统计数据
sql中按照时间分段分组,显示及统计分段数据,最后获取总行数:下面sql条件中48表示时间段数(一天48个0.5小时即半小时分段统计,以此类推修改);--注释了查询条件即只统计错误或统计时间限制(hh24miss)内的数据;最后0和500分别为分页起止数。查询行数据select * from (select rownum as rn, a.* from (s...
2018-07-19 14:22:36 21863
原创 联表根据共同字段分组sql统计数据
简单的连表统计某个ID出现的次数则sql类似:select t2.*,( select count(t1.id) from cook_comment t1 where t1.goodsId=t2.id ) as commentNumber from goods t2 ;涉及到多列需要作为查询分组的如下示例:sql联表查询根据共同字段group by分组统计数据并显示,行数据:...
2018-07-19 14:19:33 2139
原创 解决MySQL不能远程访问问题
1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u root -pvmwaremysql>use mysql; mysql>update user set host
2018-07-19 14:10:51 525
原创 String 、InputStream、Reader 的转换
1、String –> InputStreamInputStrem is = new ByteArrayInputStream(str.getBytes());orByteArrayInputStream stream= new ByteArrayInputStream(str.getBytes());2、InputStream–>StringinputStream in...
2018-07-19 14:09:06 1821
原创 生产者消费者模式(阻塞队列)
生产消费者模式需要使用到同步,以及线程,属于多并发行列,和观察者模式的差异也就在于此,所以实现起来也主要在这里的差异。 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 单单抽象出生产者和消费者,还...
2018-07-19 14:06:26 340
原创 URLEncoder和URLDecoder的转码
URLEncoder类为实现将任意字符串转为特定编码的encode编码类似加密后字符串;URLDecoder类为实现将编码后的字符串通过特定编码转回类似解密后可读的字符串;设置编译环境和项目编译编码为:UTF-8 UTF-8,类文件设置为GBK,代码如下:public static void main(String[] args) { String str = "GBK:...
2018-07-19 11:24:11 1006
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人