自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (2)
  • 收藏
  • 关注

原创 防止数据库误操作被删,恢复方法

1、全量备份+增量备份全量备份:定期(例如一个月)将库文件全量备份增量备份:定期(例如每天)将binlog增量备份数据恢复:(1)将最近一次全量备份的全库找到,拷贝回来(文件一般比较大),解压,应用(2)将最近一次全量备份后,每一天的增量binlog找到,拷贝回来(文件较多),依次重放(3)将最近一次增量备份后,到执行“删全库”之前的binlog找到,重放2、1小时延时从增加一个从...

2020-03-31 17:50:43 1155 1

原创 开发问题:微信支付金额精度丢失

在做微信支付的时候,微信订单金额需要是以分单位传给微信支付金额的,需要对订单金额*100计算,在这个计算过程中,出现的精度丢失问题,就照成了实际支付的金额比订单金额少一分钱。支付宝是传入实际金额,不需要进行计算,所以没有这个问题。...

2020-03-24 17:53:58 1287 1

原创 支付订单超时处理

业务场景:一般电商下单流程中为了释放库存会针对用户下单做超时订单交易关闭的处理,这里一般都是15分钟,30分钟等。使用队列ActiveMQ处理超时订单在项目过程中遇到用户停留在支付页面15分钟之后再进行支付,就会出现用户付款,后台已经把订单当做超时处理为交易关闭的订单。其实针对这种情景,支付宝和微信已经给出了解决方案:支付宝:官方文档:支付宝设置绝对超时时间,设置一个时间点,如果拉...

2020-03-22 16:41:47 10043 2

原创 VUE项目开发启动命令

idea导入vue项目npm install 安装依赖包npm run serve 启动项目npm bulid 项目打包,在命令行界面执行在执行这些命令的时候,需要安装node环境,可以使用 node -v 查询node环境安装版本。以上。...

2019-12-13 20:13:58 20672

原创 分布式事务解决方案(二)

最终一致性方案之ebay模式eBay在2008年公布了一个关于BASE准则提到一个分布式事务解决方案。eBay的方案其实是一个最终一致性方案,它主要采用消息队列来辅助实现事务控制流程,方案的核心是将需要分布式处理的任务通过消息队列的方式来异步执行,如果事务失败,则可以发起人工重试的纠正流程。人工重试被更多的应用于支付场景,通过对账系统对事后问题进行处理。比如一个很常见的场景:某个用户产生了一笔...

2019-12-02 20:19:24 1551

原创 使用队列ActiveMQ处理超时订单

背景:在商城项目中,有这样的需求:针对用户已下单但是一直未去付款的订单做超时处理,因为如果一个商品有库存数量的概念,在用户每次下单时做库存减操作,在用户取消订单时做库存返还操作。这时候为了防止恶意刷库存,就需要针对已下单但是长时间未支付的订单做超时处理,返还库存的操作,此时,就要涉及到了订单超时的处理。解决方式:方式一:定时任务思路:使用定时任务每分钟轮询数据库,查询出超时的订单,进行u...

2019-11-30 15:16:16 3655 1

原创 分布式事务解决方案(一)

为什么会出现分布式事务?当我们项目架构逐渐扩展增大,为了对服务器访问压力进行负载均衡,在框架层面开始使用分布式服务,数据库也开始进行分库分表操作,分库分表之后,一方面可以解决同时访问单库带来的性能压力,另一方面,又可以减少单库单表的数据量,解决了代码中SQL查询数据量比较大的表效率慢的问题。在此之前,数据库中的增改都是对单个数据库做的操作,在这种情况下,通过框架本身自带的事务@Transac...

2019-11-29 20:31:04 1024

原创 多线程并发编程问题梳理

线程和进程进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位。一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变...

2019-06-26 17:19:59 846

原创 java中的Volatile和synchronized的区别

1、JMM Java Memory Model (java内存模型)并发过程中如何处理可见性、原子性、有序性的问题使用多线程Runnable/ Thread并发编程中的两个关键问题线程之间如何通信 wait() notify() notifyall()a) 共享内存 – 隐式通信b) 消息传递 – 显式通信b. 线程之间如何同步在共享内存的并发模型中,同步是显式做的;s...

2019-06-25 14:21:08 755

原创 如何控制多线程执行顺序

static Thread thread1 = new Thread(new Runnable() { @Override public void run() { System.out.println("线程1"); } }); static Thread thread2 = new Thread(n...

2019-06-19 18:18:22 3146

原创 开发问题:bootstrap表格内信息过长的两种解决方式

在使用bootstrap table的时候,如果某个单元格中字体过多而宽度不够的时候,多余的字体就变成了省略号。1. 可以做成带左右滚动条的样式:效果图代码:js中不需要改动,只需要把bootstrap table的样式做一下改变。<table class="table text-nowrap" style="min-width:2000px;" id="productOrde...

2019-04-30 16:52:15 3088

原创 极光推送短信-工具类

极光短信通知工具类需要你注册极光账号的MASTER_SECRET 和 APP_KEY 两个参数(必须)。进入极光开发者平台,即可查看:/** * 极光推送 */@SuppressWarnings({"deprecation", "restriction"})public class JiguangPushUtil { protected static final Lo...

2019-04-24 14:39:26 563

原创 代码、SQL片段

(一)、mysql按月份统计数据这里需要创建一个tmp表,里面有最近一年的日期,查询时即可通过tmp来进行数据组装。tmp表CREATE TABLE `my_date_tmp` ( `date` datetime DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;查询语句:SELECT DATE_FORMAT(md.date, '...

2019-03-28 10:01:16 758

原创 select2下拉框可根据条件搜索

自己写项目时偶尔会遇到下拉时根据条件搜索的这种需求,在此记录一下,方便以后查询。1、先上图展示结果:2、直接贴代码:&amp;amp;lt;script src=&amp;quot;jquery-3.2.1.min.js&amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&amp;amp;lt;script src=&amp;quot;select2.full.min.js&am

2019-02-21 16:35:46 1694

原创 使用IDEA创建springboot项目

1.idea –&gt; New Project2.在这里填写你的包名和项目名3.创建项目时,选择依赖可以选择web mysql myBtais(看个人需要,后续也可以在pom.xml中自己添加)创建好之后的项目目录结构,在这里配置文件的后缀是.properties,这里可以自行改成自己习惯的后缀这是idea自动生成的pom.xml&lt;?xml version="1.0" e...

2019-01-17 17:50:47 179

原创 应用程序无法正常启动0xc000007b 解决办法

之前安装mysql的时候,每次在cmd窗口执行命令时,windows就会出现这个错误“应用程序无法正常启动0xc000007b”。错误原因应该是系统内的某个dll文件丢失或者是32位文件和64位的操作系统不匹配,然后根据操作系统位数在网上下载了一些相应的的dll文件,并没有起到作用。解决办法:下载DirectX修复工具,进行修复。注意:这里一定要下载DirectX增强版的修复工具,增强版不仅...

2018-12-25 11:27:48 1436

原创 IDEA 使用@Data注解 get/set方法报错

安装插件

2018-12-14 16:11:41 6798

原创 MyBatis:自定义TypeHandler

a

2018-12-10 17:17:23 253

原创 spring事务管理笔记

spring事务事务:事务是访问并可能更新数据库中各中数据项的一个程序执行单元(unit)。主要是用来保证数据操作的一致性(执行单元),要么全成功,要么全失败。事务的4个特性:原子性、一致性、隔离性、持久性。特性描述原子性(Atomicity)事务最基本的操作单元,要么全部成功,要么全部失败,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状...

2018-11-30 22:40:43 112

原创 开发问题:dos窗口杀掉tomcat进程

dos窗口杀掉Tomcat的进程:1.netstat -ano | findstr 80808080是指的当前tomcat开启的端口。找到最下面一列的数字,比如78442.taskkill /f /pid 7844这是就会出现:成功,已终止PID为7844的进程。...

2018-11-19 09:45:54 374

原创 阿里云短信平台发送验证码

第一次做发送短信验证码的功能,以前没做的时候一直觉得很神秘,现在把功能开发完成,把代码记录一下,等下次再做的时候方便查阅。首先是引入maven坐标然后创建阿里云短信工具类再写自己具体的发送短信的业务代码。Maven坐标: &lt;!-- 阿里云 短信 注:如提示报错,先升级基础包版,无法解决可联系技术支持--&gt;&lt;dependency&gt; &lt;group...

2018-11-08 17:32:30 2016

原创 springMVC和三层架构

springMVCM:modelV:viewC:controller三层架构:Dao:数据访问层Service:业务处理层Web层(J2ee的内容)Request和response

2018-10-26 14:24:00 9395

原创 java二十三种设计模式

首先引入shiro与Spring的依赖。Shiro和Spring整合的依赖&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shiro&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shiro-spring&amp;lt;/artifactId&amp;gt;

2018-09-14 11:02:39 172

原创 shiro权限框架-(一)数据库表设计

使用shiro作为权限安全框架,主要用到的表就5个: 实体表: 用户表 角色表 权限表(菜单和按钮) 关系表: 用户角色关系表 角色权限关系表...

2018-09-05 11:55:01 16655 7

原创 Linux 安装禅道

系统 CentOS 6.5 1、下载禅道下载站点1:http://sourceforge.net/projects/zentao/files/9.0.1/ZenTaoPMS.9.0.1.zbox_64.tar.gz/download下载站点2:http://dl.cnezsoft.com/zentao/9.0.1/ZenTaoPMS.9.0.1.zbox_64.tar.gz2、解压安装...

2018-07-18 16:09:48 602

原创 Linux上搭建Git服务器

环境:VMware虚拟机 Centos 6.5 1、在VM上安装Linux系统,这里用到的是Centos6.5。

2018-07-12 11:30:32 453

原创 oracle函数

由于最近使用oracle比较多,所以在平时开发当中把使用过的函数简单记录一下:exists:操作的原理是先进行主查询操作,再到子查询中进行过滤(适合主查询是小表,子查询是大表)。exists 相当于in,not exist 相当于 not innvl(参数1,参数2)如果参数1为null的时候,则返回参数2,如果参数1和参数2都为null的时候,则返回为null。truncate...

2018-05-28 22:17:28 139

原创 jsp相关:不能直接访问web-inf文件下下jsp文件

web-inf文件夹在正常情况下系统是不允许外界直接访问的,访问里面的文件就会出现404错误,但是系统可以自身进行访问,所有要使系统去访问的话就需要使用拦截控制器去接受外界命令,由控制器来转发访问请求,这样将网页放到web-inf下能降低网页的注入漏洞和BUG的出现概率,能很好的维护系统稳定!

2018-04-16 18:11:30 272

原创 oracle存储过程使用

一、创建存储过程 create or replace procedure 存储过程名称( V_RETCODE OUT VARCHAR2, //固定参数 V_RETINFO OUT VARCHAR2) begin … end二、调用存储过程

2018-04-16 12:31:50 279

原创 点击确认弹出输入框js代码

使用场景:在审核一项申请时用于审核通过或驳回需要填写原因,点击确认弹出输入框,输入备注完成审核。1,使用自带的弹出框,只能定义弹出框的大小,不能定义输入框的大小,而且是必须输入。// layer.prompt({title: title, maxlength: 100, value:'', formType: 2}, function (remark, i) { $.ajax({ ...

2018-03-14 17:44:39 7181

原创 开发问题:error: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

代码中查询MySQL的结果集时报错,提示Value ‘0000-00-00 00:00:00’ can not be represented as java.sql.Timestamp;刚开始以为是代码中格式化结果集中的日期报错,找了一遍发现并没有对日期进行格式化,发现是查询的结果集中某数据行的日期值为0000-00-00 00:00:00。因MySQL的时间类型datetime范围是1000-01

2018-03-14 17:34:47 141

原创 开发问题:Springmvc复杂提交

1、Spring复杂提交 用于提交List或数组。也可以是List<对象>。 前台freemarker页面<#if testList??> <#list testList as row> <input type="text" id="list[${row_index}].id" name ="list[${row_index}].id" value="${(row.id)

2018-02-08 12:13:40 164

原创 开发问题:input type="number"可以输入字母e

input type=”number” 时只允许输入数字,但是字母e可以输入,原因是e在数学上代表2.71828,所以它也还是一个数字,所以能输进去。 解决办法为在input属性上加上:解决办法为在input属性上加上: onKeypress=”return (/[\d]/.test(String.fromCharCode(event.keyCode)))” 其中min max是设置可输

2018-02-07 11:29:53 10534 8

原创 java内存溢出异常

java.lang.OutOfMemoryError 内存溢出异常 Exception in thread “http-apr-8080-exec-6” java.lang.OutOfMemoryError: PermGen space 解决办法:在IDEA下,打开Tomcat设置页面 -XX:PermSize=64M -XX:MaxPermSize=128m

2018-01-26 14:03:34 346

原创 IDEA 更换项目JDK版本

在此处更换JDK的版本 在此处修改过jdk版本后,如果在项目运行编译过程中报以下错误:Error:java: Compilation failed: internal java compiler error因为jdk版本不一致造成 再次修改以下地方

2018-01-17 14:55:49 25774 2

原创 IDEA实用快捷键

记录一些开发中有用但之前不知道的快捷键:获取一个方法的返回值以及自动生成名称:ctrl + v (在当前行后使用) 获取main函数: psvm for循环:fori增强for循环:iter (在方法体内使用)复制多个内容到粘贴板:ctrl + shift + c在粘贴板选择复制的内容进行粘贴:ctrl + shift + vSystem.out.println: sout

2018-01-17 10:52:44 137

原创 jqGrid日期类型格式化

在jqGrid中,展示日期类型。

2017-12-29 11:23:09 2141

原创 日期选择器 当前日期之前不允许选择

日期选择器 当前日期之前不允许选择javaDate date= new Date();model.addAttribute("startTime", date);freemarker<@form.datetime id="time" name="time" nullmsg="请输入截止日期" startDate="${startTime?datetime}" placeholder="请输入截

2017-12-20 16:55:26 5586

原创 java开发中预防NPE异常

在程序中为了预防NPE NullPointerException 空指针异常 要对接收到的各种数据类型、包装类型判空操作:// 实体类对象User user = new User;if (user == null) { return ;}//String类型String str ;if (StringUtils.isEmpty(s)) { return ;...

2017-12-15 11:15:41 1197

原创 用select2做级联下拉选择

两个下拉框,通过选择年级下拉框进行查询该年级下的所有班级。 可以对select添加onchage事件,监控下拉事件,下拉选择年级,把年级id传入后台查询出该年级下属班级,把班级列表展示到下拉框。 js:$("#grade").change(function () { var grade= $("#grade").val(); $.ajax({ url:base +

2017-12-08 17:18:19 12691

下拉框可进行条件搜索select2.full.min.js

select2下拉框可进行条件搜索。select2.full.min.js https://blog.csdn.net/m0_38065515/article/details/87863729

2019-02-21

DirectX 增强版修复工具

应用程序无法正常启动0xc000007b,增强版修复工具,打开安装使用,修复错误的dll文件,更新系统的C++库

2018-12-25

空空如也

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

TA关注的人

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