
开发问题
文章平均质量分 55
liuluteng2333
Java软件开发
展开
-
防止数据库误操作被删,恢复方法
1、全量备份+增量备份全量备份:定期(例如一个月)将库文件全量备份增量备份:定期(例如每天)将binlog增量备份数据恢复:(1)将最近一次全量备份的全库找到,拷贝回来(文件一般比较大),解压,应用(2)将最近一次全量备份后,每一天的增量binlog找到,拷贝回来(文件较多),依次重放(3)将最近一次增量备份后,到执行“删全库”之前的binlog找到,重放2、1小时延时从增加一个从...原创 2020-03-31 17:50:43 · 1312 阅读 · 1 评论 -
开发问题:微信支付金额精度丢失
在做微信支付的时候,微信订单金额需要是以分单位传给微信支付金额的,需要对订单金额*100计算,在这个计算过程中,出现的精度丢失问题,就照成了实际支付的金额比订单金额少一分钱。支付宝是传入实际金额,不需要进行计算,所以没有这个问题。...原创 2020-03-24 17:53:58 · 1493 阅读 · 1 评论 -
支付订单超时处理
业务场景:一般电商下单流程中为了释放库存会针对用户下单做超时订单交易关闭的处理,这里一般都是15分钟,30分钟等。使用队列ActiveMQ处理超时订单在项目过程中遇到用户停留在支付页面15分钟之后再进行支付,就会出现用户付款,后台已经把订单当做超时处理为交易关闭的订单。其实针对这种情景,支付宝和微信已经给出了解决方案:支付宝:官方文档:支付宝设置绝对超时时间,设置一个时间点,如果拉...原创 2020-03-22 16:41:47 · 10421 阅读 · 2 评论 -
VUE项目开发启动命令
idea导入vue项目npm install 安装依赖包npm run serve 启动项目npm bulid 项目打包,在命令行界面执行在执行这些命令的时候,需要安装node环境,可以使用 node -v 查询node环境安装版本。以上。...原创 2019-12-13 20:13:58 · 21456 阅读 · 0 评论 -
分布式事务解决方案(二)
最终一致性方案之ebay模式eBay在2008年公布了一个关于BASE准则提到一个分布式事务解决方案。eBay的方案其实是一个最终一致性方案,它主要采用消息队列来辅助实现事务控制流程,方案的核心是将需要分布式处理的任务通过消息队列的方式来异步执行,如果事务失败,则可以发起人工重试的纠正流程。人工重试被更多的应用于支付场景,通过对账系统对事后问题进行处理。比如一个很常见的场景:某个用户产生了一笔...原创 2019-12-02 20:19:24 · 1618 阅读 · 0 评论 -
使用队列ActiveMQ处理超时订单
背景:在商城项目中,有这样的需求:针对用户已下单但是一直未去付款的订单做超时处理,因为如果一个商品有库存数量的概念,在用户每次下单时做库存减操作,在用户取消订单时做库存返还操作。这时候为了防止恶意刷库存,就需要针对已下单但是长时间未支付的订单做超时处理,返还库存的操作,此时,就要涉及到了订单超时的处理。解决方式:方式一:定时任务思路:使用定时任务每分钟轮询数据库,查询出超时的订单,进行u...原创 2019-11-30 15:16:16 · 3804 阅读 · 1 评论 -
分布式事务解决方案(一)
为什么会出现分布式事务?当我们项目架构逐渐扩展增大,为了对服务器访问压力进行负载均衡,在框架层面开始使用分布式服务,数据库也开始进行分库分表操作,分库分表之后,一方面可以解决同时访问单库带来的性能压力,另一方面,又可以减少单库单表的数据量,解决了代码中SQL查询数据量比较大的表效率慢的问题。在此之前,数据库中的增改都是对单个数据库做的操作,在这种情况下,通过框架本身自带的事务@Transac...原创 2019-11-29 20:31:04 · 1060 阅读 · 0 评论 -
开发问题:bootstrap表格内信息过长的两种解决方式
在使用bootstrap table的时候,如果某个单元格中字体过多而宽度不够的时候,多余的字体就变成了省略号。1. 可以做成带左右滚动条的样式:效果图代码:js中不需要改动,只需要把bootstrap table的样式做一下改变。<table class="table text-nowrap" style="min-width:2000px;" id="productOrde...原创 2019-04-30 16:52:15 · 3268 阅读 · 0 评论 -
极光推送短信-工具类
极光短信通知工具类需要你注册极光账号的MASTER_SECRET 和 APP_KEY 两个参数(必须)。进入极光开发者平台,即可查看:/** * 极光推送 */@SuppressWarnings({"deprecation", "restriction"})public class JiguangPushUtil { protected static final Lo...原创 2019-04-24 14:39:26 · 634 阅读 · 0 评论 -
代码、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 · 808 阅读 · 0 评论 -
select2下拉框可根据条件搜索
自己写项目时偶尔会遇到下拉时根据条件搜索的这种需求,在此记录一下,方便以后查询。1、先上图展示结果:2、直接贴代码:&amp;lt;script src=&quot;jquery-3.2.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script src=&quot;select2.full.min.js&am原创 2019-02-21 16:35:46 · 1766 阅读 · 0 评论 -
开发问题:dos窗口杀掉tomcat进程
dos窗口杀掉Tomcat的进程:1.netstat -ano | findstr 80808080是指的当前tomcat开启的端口。找到最下面一列的数字,比如78442.taskkill /f /pid 7844这是就会出现:成功,已终止PID为7844的进程。...原创 2018-11-19 09:45:54 · 420 阅读 · 0 评论 -
开发问题: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 · 193 阅读 · 0 评论 -
开发问题: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 · 10845 阅读 · 8 评论 -
jqGrid日期类型格式化
在jqGrid中,展示日期类型。原创 2017-12-29 11:23:09 · 2202 阅读 · 0 评论 -
做项目过程中遇到的问题
正在进行着的一个项目,行至一半,停下记录下一些需要注意的地方。1.梳理清即将要写的功能的逻辑,用到的技术点,用什么方式实现功能,然后再去寻找技术点的使用。2.判空操作:controller接收前台传入的参数时、查询方法查出的对象信息等都为了避免出现java.lang.NullPointException错误,都需要在这是判断是否为空null,对象类型判断: User user;原创 2017-08-25 15:04:30 · 4938 阅读 · 0 评论 -
jQuery日期选择器
jQuery日期选择器 开始时间与结束时间校验。 如:两个时间:开始时间与结束时间,校验开始时间必须在结束时间之前,结束时间必须在开始时间之后。 function changeStartTime(e) { $('#endTime').datetimepicker('setStartDate', e.date);}function changeEndTime(e) { $('#原创 2017-09-13 11:15:14 · 1314 阅读 · 0 评论 -
开发问题:java日期大小判断
判断两个日期是否在同一天 思路:首先取出两个日期,如果是Date类型,转换为String,用equals对吧两个String。 代码:// 开始时间String startTime = DateUtils.dateToString(schedule.getStartTime(), "yyyy-MM-dd");//结束时间String endTime = DateUtils.dateToSt原创 2017-09-22 11:12:35 · 612 阅读 · 0 评论 -
开发问题: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 · 171 阅读 · 0 评论 -
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 · 1238 阅读 · 0 评论 -
chrome跨域配置
右键chrome图标–>属性 在‘目标’栏添加 –args –disable-web-security –user-data-dir 注意:添加命令时要与之前的路径之间有个空格。原创 2017-10-24 10:29:18 · 265 阅读 · 0 评论