- 博客(31)
- 资源 (10)
- 收藏
- 关注
原创 关于SQLite轻量数据库的研究
可以看出两个数据库在关键字上的支持差别不大,只是有个 单引号和双引号 的区别,SQLite 不识别双引号,所有字符串查询,都需要统一使用单引号。可见,在建表语句中,SQLite中,不支持“COMMENT”、“ON”、以及“InnoDB”等指定数据库类型的语法。除了数据源设置不一样以外,其他的包括实体类,mapper,service等都和MySQL一样。.**语句,其他的都是一模一样,可见,在插入语句的语法中,MySQL和SQLite差别不大。表示一般的修改语句,两个数据库是可以兼容的。
2025-04-15 17:41:39
170
原创 java读取文件夹下的文件,将文件名输出成JSON
public class GetFileNameToJson { public static void main(String[] args) { String fileUrl = "D:\\HTML\\202103090\\html"; File folder = new File(fileUrl); File[] listOfFiles = folder.listFiles(); //组装所有文件的文件名为一个JSON文件[{"n.
2022-05-06 15:20:09
965
原创 悲观锁-利用数据库设计多活高并发自增ID
现在有一个需求,在不使用redis的前提下,设计一个可以多节点共同访问的自增ID系统首先我想到的就是秒杀抢单的时候,我们常用的悲观锁原则,不然,在高并发场景下,利用数据库来做计数是无法保证数据安全的,也就是常说的,锁不住。表设计(先设计一个最简单的表:当前需求是每天生成一套计数器):CREATE TABLE `test_key` ( `key` int(6) DEFAULT '0', `data_time` varchar(16) NOT NULL, PRIMARY KEY (`d
2021-12-16 15:10:24
1612
原创 论证Object强转List可行性单测
为了论证博主文章的准确性和可实现性https://blog.youkuaiyun.com/qq_19642249/article/details/81154713我单独写了一个测试类来论证@Test public void test11(){ List<String> list = new ArrayList<>(); for(int...
2019-08-10 17:06:46
638
原创 AXURE RP EXTENSION For Chrome 安装教程
我们在使用RP产品原型的时候,预览原型使用谷歌总是比IE更加方便,但是谷歌浏览器是需要安装RP插件的,不然直接浏览就会报错:接下来,就附上安装教程:这个是插件下载地址:https://download.youkuaiyun.com/download/qq_29884151/112955371,打开谷歌浏览器点击右上角三个点的地方2,依次选择:更多工具→扩展程序...
2019-07-08 11:31:15
2328
原创 KMP 字符串匹配算法
字符串匹配算法,Knuth-Morris-Pratt算法(简称KMP),需要达成的目标是,找出某字符串a“ABCDABD” 在字符串b“BBC ABCDAB ABCDABCDABDE JDKAB”中是否存在,读了一些文章,暂时觉得,阮一峰的文章解释的还比较通俗易懂,以下,是我基于文章做出的代码及逻辑分析/** * KMP 算法 * http://www.ruanyif...
2019-07-01 14:52:36
404
原创 通过表结构生成AS查询语句
一个大表的属性列是很多的,如何通过属性的字段生成相应的类名字段,有时候是有这种小需求的,例如 “old_data_id”这个列,在类中的属性应该为“oldDataId”,在自定义的SQL语句中,就需要自己去写这种AS转换。这里写了段小代码,做一个记录:@Test public void testTestMake() { String begin = "`id` var...
2019-06-20 17:16:05
624
原创 全量修改对象快捷赋值工具类
开发过程中经常会遇到全量修改的场景,但好多时候在只修改一两个属性的时候会遇到不能快捷的对修改的属性赋值的问题,这边基于 在京奋斗者 的一篇博文中得到启发,修改了部分代码,写出了这样一个可以根据属性是否为空来自动赋值的工具类,并以文记录,希望帮助到更多人。 /** * 复制修改对象方法 * * 将原始完整对象的属性 * 赋值给部...
2019-03-26 09:47:02
432
原创 设计方案:倒计时执行任务以及任务中断
刚才开了一个脑洞,有一个需求是一个比较重要和严重后果的操作,需要有反悔时间三十秒,场景如下:调用一个接口(或点击一个按钮)之后,会删除当前电脑所有文件(或删除数据库中的所有数据),但有三十秒的反应时间(倒计时),在倒计时过程中,有一个取消接口(或取消按钮),点击之后,当前倒计时取消,结束任务,不会删文件或者删库 思路如下,最开始准备用线程sleep来做,休眠三十秒,然后让另...
2019-01-15 15:57:30
747
原创 策略模式-Spring下如何使用父类调用对应子类
开发过程中会涉及到根据不同条件需求需要通过不同子类调用实现的需求,例如一个接口需要制造一辆车,但车分自行车,摩托车,越野车他们都有同样的需求(父类):有动力输出,有车体制造,有车轮制造……但他们各自的需求又不一样(子类): 就动力输出来说,自行车的动力输出是踏板链条,摩托车的动力输出是发动机; 车体制造来说,直行车只需要几根碳纤维管,越野车则需要顶棚...
2018-12-14 17:39:41
3407
原创 Java文件操作工具类
以下代码整理自https://www.cnblogs.com/vofill/p/6909780.htmlhttps://blog.youkuaiyun.com/u011687186/article/details/51233968本文只做个人工具记录,不具有参考性,若要讨论,请前往原帖public class FileUtil { /** * @Fields log : l...
2018-12-13 17:57:47
215
原创 枚举类的工程化运用
枚举类型是工程化中的某些特殊含义字段的集合展现形式,在一个大中型项目中,枚举有着广泛的运用场景,主要有这几个需求:1,获取当前枚举的值(一般是int类型值:1,2,3)2,枚举名称(包括中文名和英文名)3,根据枚举值定义到某个枚举类型(例如:1定位到枚举中的YES等)一,获取枚举值基础接口public interface IEnum<T extends Enum&l...
2018-11-27 14:43:34
241
原创 几种负载均衡优劣
DNS 负载均衡例如,北方的用户访问北京的机房,南方的用户访问深圳的机房。DNS 负载均衡的本质是 DNS 解析同一个域名可以返回不同的 IP 地址。例如,同样是 www.baidu.com,北方用户解析后获取的地址是 61.135.165.224(这是北京机房的 IP),南方用户解析后获取的地址是 14.215.177.38(这是深圳机房的 IP)。DNS 负载均衡实现简单、成本低,但也...
2018-10-08 17:05:11
2020
原创 高性能缓存的几个问题
在一些特殊场景下,仅仅依靠提升存储系统性能是不够的。如:需要经过复杂运算得到的数据;读多写少的数据。于是有了缓存,它虽能大大减轻存储系统的压力,但也引入了更多的复杂度。TOP1、缓存穿透是指缓存没有发生作用。通常有两种情况:存储数据不存在、缓存数据生成耗费大量时间或者资源。目前没有特别好的解决方案。TOP2、缓存雪崩(缓存击穿)是指缓存失效后引起系统性能急剧下降。解决方法:更新锁机...
2018-10-08 16:55:40
448
原创 @Test Mock数据的单元测试
开发中经常用到单元测试,但有的逻辑代码涉及到数据库操作,当然,在测试的时候可以连接数据库测试,但有一些特殊情况是不能让工程编译的时候连接数据库的,这个时候单元测试就会出问题。于是,在不是主要测试数据库的逻辑单元测试的时候,就可以用单元测试中的Mock功能来模拟数据,从而测试逻辑代码结构是否完整,是否可以用某些特定的参数得到相应的结果。简单的说就是:通过模拟数据进行各类的单元测试go首先...
2018-09-20 17:59:07
4393
原创 通过QRCode生成二维码
本文讲解的是比较常用的QRCode方式生成二维码,那么第一步就是找到QRCode.jar文件资源,然后将jar包导入工程中:这里放上一个资源链接:QRCode资源包下载常用的导入java工程中的方式就不做赘述,这里给个传送门:https://blog.youkuaiyun.com/androidSmallJi/article/details/78854344下面讲解如何将这个jar...
2018-08-25 15:17:47
8032
原创 GIT add文件报错:git warning: LF would be replaced by CRLF 解决方案
libgit2 returned: LF would be replaced by CRLF in 'core/src/main/java/com/task/dao/TaskLogDao.java'报错信息是TortoiseGit 在add文件中操作出现的错误,翻译过来意思是:LBGIT2返回:LF将在CROL/SRC/My/Java/COM/Tease/Daa/TaskLogDa.j...
2018-08-02 18:40:02
3079
1
原创 Cordova对H5页面进行APP开发打包
Cordova的安装:下载jdk,安装JAVA环境,配置系统环境。网上都有教程打开cmd命令行,运行npm install -g cordova,全局安装cordova。测试是否安装好了cordova,继续在命令行里输入cordova -v,检查cordova版本号,如果有版本信息则说明已成功安装cordova。新建cordova项目 cordova create folderName进入新建co...
2018-06-13 22:12:17
2141
原创 token令牌生成工具类
这里记录一个生成token的方法,token根据userId生成。此工具类包含的主要功能有: userId隐式传输,保证数据安全; 不对称加密方式,防止数据篡改;import java.io.UnsupportedEncodingException;import java.util.Base64;import java.util.Random;import java.util.r...
2018-06-11 15:08:02
21725
原创 springBoot定时任务处理类
首先在启动类上添加注解:@EnableScheduling 来开启定时任务@SpringBootApplication@EnableSchedulingpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, ar...
2018-06-05 10:10:33
403
原创 ConcurrentHashMap单服务缓存工具类
public class CacheMap { /** * 数据缓存map */ private static Map<String, Object> dataMap = new ConcurrentHashMap<String, Object>(); /** * 数据缓存过期map */ privat...
2018-06-04 16:15:51
758
原创 Spring Cloud 服务间调用 @FeignClient 注解
springCloud搭建各种微服务之后,服务间通常存在相互调用的需求,springCloud提供了@FeignClient 注解非常优雅的解决了这个问题首先,保证几个服务在一个Eureka中形成服务场。如下,我一共有三个服务注册在服务场中。COMPUTE-SERVICE ; FEIGN-CONSUMER ; TEST-DEMO;现在,我在FEIGN-CONSUMER 服务中调用其他两个服务的两个...
2018-05-29 14:13:51
19564
1
原创 Spring Cloud分布式集群服务搭建之发现与注册
springBoot简化了一个工程开发的配置过程,但对于集群化服务,spring有一套叫做springCloud的解决方案,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。本文主要讲一下springCloud的发现与注册的配置方案首先创建一个e...
2018-05-28 17:09:10
6421
原创 springBoot学习笔记之application.yml配置文件
在上一篇文章里,我创建了一个springBoot的简单demo,并实现了简单的http请求。但有些用过springBoot工程的人就会疑惑,springBoot工程中是有一个application.yml配置文件的啊,其实application.yml的功能和application.properties是一样的,不过因为yml文件是树状结构,写起来有更好的层次感,更易于理解,所以很多人都选择了ym...
2018-05-25 11:13:35
119189
20
原创 springBoot学习笔记之创建一个基础springBoot工程
首先创建一个maven工程maven选择新建项目groupid表示项目的包名,artifactid表示项目名 工程名和工程目录,点击finish完成创建 创建完成然后开始创建springBoot往POM文件中写入相关依赖<properties> <java.version>1.8</java.version></properties>&l...
2018-05-24 14:53:30
1474
3
原创 算导读书笔记——插入排序
基础算法之插入排序 我觉得《算法导论》一书中对插入排序的描述非常简洁易懂:“插入排序的工作方式像许多人排序一手扑克牌”。 是的,我们排序手里的扑克牌的方式往往是先在手中握好正确排序的一手扑克,然后将牌堆中的牌依次插入到当前排序中,我们在将牌堆中的牌插入手中的这个过程,就是在做插入排序。 试想,当前“牌堆”为{6,8,7,56,14,24,5,12},我们要排序的话就得将“牌堆”中...
2018-04-07 21:20:54
198
redis-6.0.1版本压缩包及中英文发行说明.zip
2020-05-15
mongodb 4.2.6 最新版windows安装包及数据库工具.zip
2020-05-15
Git-2.26.2 windows最新安装包.zip
2020-05-15
TortoiseGit-2.10.0.2 windows安装包.zip
2020-05-15
Axure-RP-Extension-for-Chrome插件包及教程.rar
2019-07-08
TortoiseGit2.8 安装包和中文包
2019-03-15
QRCodeMAVEN集成包
2018-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人