
工作笔记
文章平均质量分 62
vamViolet
Keep It Simple,Stupid
展开
-
skyWalking自动建表-逻辑梳理
使用skyWalking后,发现我们不需要创建表,启动skywalking会自动创建表,遂研究官方源码,感觉oap-server设计的自动建表功能很强大,并进行逻辑梳理,仅供参考。源码地址:https://github.com/apache/skywalking.git。原创 2023-04-13 14:01:45 · 915 阅读 · 1 评论 -
MyBatisPlus-inSql和in的区别解析
区别概述inSql:同等于${},存在SQL注入隐患in:同等于#{},不存在SQL注入隐患原创 2022-04-02 13:11:21 · 1922 阅读 · 0 评论 -
签名/验签时,将参数名ASCII码从小到大排序
目录背景介绍测试方法对比结果背景介绍签名/验签时,经常需要将参数名按照ASCII码从小到大排序后,然后进行加密/解密操作。这里介绍三种ASCII码从小到大排序方法。Guava 1StringBufferhutool工具类测试方法 public static void main(String[] args) { //签名/验签时,将参数名ASCII码从小到大排序 Map<String, Object> map = new TreeMap<原创 2021-09-16 11:47:20 · 4003 阅读 · 0 评论 -
关于Jayspt加密明文敏感信息的使用
目录现状及目标Jasypt - 简介Jasypt - 是什么Jasypt - 简介Jasypt - 特点Jasypt - 原理Jasypt - 集成方式Jasypt - starter方式使用案例现状及目标项目中会有配置文件来存放敏感信息(比如数据库密码、中间件密码等),这些明文存储的敏感信息一旦泄露,会引发严重的安全事故。为了消除安全隐患,最直接的方式就是把明文敏感信息加密,在程序需要用到的时候进行解密。针对加密、解密,Jasypt 框架提供了很好的解决方案。Jasypt - 简介Jasyp原创 2021-09-08 09:47:29 · 627 阅读 · 0 评论 -
关于ShardingSphere-JDBC的简介及使用
现状及目标由于旧的业务表中数据量会持续增长,且没有对数据做分表、索引,最终导致查询上亿数据时报错。因此决定使用ShardingSphere-JDBC对表数据做数据分片处理。ShardingSphere-JDBC简介ShardingSphere-JDBC是什么ShardingSphere-JDBC作为Apache ShardingSphere的一个独立的产品。定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外原创 2021-08-30 17:56:08 · 1713 阅读 · 4 评论 -
MyBatisPlus 注解方式实现多表关联查询
目录官方API使用概述具体写法Mapper写法:entity写法:service写法:日志报错结果截图官方API官方文档:https://mp.baomidou.com/guide/具体位置:https://mp.baomidou.com/guide/wrapper.html#%E7%94%A8%E6%B3%A8%E8%A7%A3使用概述Mapper层方法上添加 ${ew.customSqlSegment}和@Param(Constants.WRAPPER);查询vo添加对应的查询条件字段,结果原创 2021-06-16 10:35:59 · 6962 阅读 · 0 评论 -
雪花算法的基本理念和简单实现
目录what is SnowflakeIdwhy is SnowflakeIdhow to donotewhat is SnowflakeId随着服务化的演进,服务越来越多,数据库越分越细,有时候一个业务也会用到多个数据库。这时,使用传统的主键自增或者UUID(无序,长度过长)方式就会产生id重复,不能满足使用场景。分布式系统中为了保证id唯一,就需要全局的唯一id生成策略。雪花算法优点:生成的ID不重复生成性能高(每向数据库插入一条数据不用进行重新排列)基于时间戳,可以基本保证有序递增原创 2021-05-25 10:55:12 · 1445 阅读 · 0 评论 -
MySQL排序规则:COLLATE 及中文排序
官方APICOLLATE API简介COLLATE:排序规则。通常是和数据编码(CHARSET)相关的,字符串的物理存储由排序规则控制。COLLATE是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影.可以用来比较一些复杂排序。如VARCHAR,CHAR,TEXT类型,不区分大小写等的列,都需要有一个COLLATE类型来告知MySQL如何对该列进行排序和比较。简而言之,COLLATE会影响到ORDER BY语句的顺序,会影响到WHERE条件中大于小于号筛原创 2020-11-17 11:06:28 · 2476 阅读 · 0 评论 -
MySQL变量知识点及使用示例
MySQL变量主要分为两种:系统变量和自定义变量。APIMySQL官方API1.系统变量:系统变量包括:全局变量和会话变量。全局变量会话变量全局变量影响服务器整体操作。会话变量影响具体客户端连接的操作。全局变量是由系统提供的。当服务器启动时,它将所有全局变量初始化为默认值。这些默认值可以在选项文件中或在命令行中指定的选项进行更改。服务器启动后,通过连接服务器并执行SET GLOBAL var_name语句,可以动态更改这些全局变量。要想更改全局变量,必须具有SU.原创 2020-10-26 09:36:42 · 11298 阅读 · 0 评论 -
一些常用的Maven命令的作用
目录clean 清理validate 验证compile 编译package 打包verify 验证install 安装sitedeploy 部署clean 清理该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件。validate 验证验证工程是否正确,所有需要的资源是否可用。compile 编译会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面原创 2020-10-14 10:22:35 · 2550 阅读 · 0 评论 -
MySQL-Find_IN_SET查询某一列中的某个值
使用场景:在MySQL中,有时在做数据库查询时,需要某个字段中包含了某个值的场景,这个时候使用like会查到多余的结果,如果这个字段中的值是用英文逗号分隔,可以使用FIND_IN_SET函数。Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。API文档MySQL官方APIFIND_IN_SET API使用例子mysql> SELECT FIND_IN_SET('b','a,b,c,d'); ->原创 2020-09-19 16:09:53 · 1559 阅读 · 0 评论 -
IntelliJ IDEA设置warning颜色
idea设置warning提示颜色,并设置下划线File—>Settings —>Editor —>ColorScheme—>General —>Errors and Warning—>Warning原创 2020-08-27 17:38:01 · 2372 阅读 · 0 评论 -
list转page分页对象
文章目录封装调用封装 public <T> Page<T> listConvertToPage(List<T> list, Pageable pageable) { // 当前页第一条数据在List中的位置 int start = (int)pageable.getOffset(); // 当前页最后一条数据在List中的位置 int end = (start + pageable.getPageSize()) >原创 2020-06-03 16:19:37 · 2634 阅读 · 1 评论 -
记录一个比较完整配置的mybatis-generator.xml
记录一个比较完整配置的mybatis-generator.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"原创 2020-05-19 11:17:48 · 9596 阅读 · 0 评论 -
CommandLineRunner和ApplicationListener原理分析
文章目录原理分析:源码跟踪SpringApplication.run 方法源码callRunners 源码分析原理分析:SpringApplication.run 方法在设置并刷新ApplicationContext后,会遍历CommandLineRunner接口和ApplicationRunner接口的实例并运行它们的run方法(类似于开机自启)。然后(AnnotationAwareOrderComparator.sort(runners);)利用@Order注解(或者实现Order接口)来设置所有C原创 2020-05-09 14:24:02 · 14347 阅读 · 0 评论 -
MySQL修改root密码的多种方法
文章目录方法1: 用SET PASSWORD命令方法2:用mysqladmin方法3: 用UPDATE直接编辑user表方法4:在丢失root密码的时候,可以这样在 Navicat for MySQL 下面直接执行 SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘newpass’); 就可以(没用过)方法1: 用SET PASSWORD命令...原创 2020-04-27 11:11:44 · 441 阅读 · 0 评论 -
Java中文首字母排序与SQL中文排序对比
使用Java提供的 Collator 类来进行中文字符串的比较.原理: 用getInstance(Locale ) 方法进行实例化对象。然后重写里面的 compare() 的方法进行比较。优点:排序方法实现简单.缺点:排序结果不是很准确.例子:String[] titles = {"关羽","张飞","公孙瓒","诸葛亮","曹操","刘备","赵云","微微", "哈哈", "哈"...原创 2020-04-24 19:18:59 · 11326 阅读 · 0 评论 -
IntelliJ IDEA常用快捷键汇总
文章目录var声明null判空notnull判非空nn判非空for遍历fori 带索引的遍历not 取反if 条件判断cast 强转return 返回值var声明null判空notnull判非空nn判非空for遍历fori 带索引的遍历not 取反if 条件判断cast 强转return 返回值...转载 2020-04-24 17:54:50 · 1683 阅读 · 0 评论 -
pageoffice使用笔记
文章目录springboot项目集成pageofficepageoffice使用WebOpen打开服务器上文件springboot项目集成pageoffice在项目src目录下新建lib文件夹,将jar包引入。pom文件配置依赖 <dependency> <groupId>com.zhuozhengsoft</groupId> <...原创 2020-04-16 19:17:21 · 14872 阅读 · 0 评论 -
git基础知识及常用命令
文章目录一、Git仓库简介二、常用命令一、Git仓库简介几个区(状态)(1)工作区(work directory):一般就是我们项目的目录,可以看到文件。(2)本地仓库/版本库(Local Repository/Repository):我们在为项目添加本地库之后,会在工作区生成一个如下图所示的隐藏目录“.git”,.git目录即为当前工作区的本地版本库。(3)暂存区(stage):版...转载 2020-04-15 09:42:14 · 722 阅读 · 0 评论 -
springboot中的jackson配置及Jackson工具类分享
文章目录springboot中的Jackson配置Jackson工具类springboot中的Jackson配置 spring: jackson: # 设置属性命名策略,对应jackson下PropertyNamingStrategy中的常量值,SNAKE_CASE-返回的json驼峰式转下划线,json body下划线传到后端自动转驼峰式 property-...原创 2020-04-01 09:54:38 · 3063 阅读 · 3 评论 -
MySQL binlog配置
vim /etc/mysql/mysql.conf.d/mysqld.cnflog-bin = /usr/local/var/mysql/logs/mysql-bin.logexpire-logs-days = 14max-binlog-size = 500Mserver-id = 1binlog_format=MIXED(加入此参数才能记录到insert语句)show varia...原创 2019-12-25 15:43:12 · 183 阅读 · 0 评论 -
Linux笔记
mkdir命令mkdir -p 可以创建多级目录mkdir -m 664 创建目录的同时设定权限为664。mkdir -p /data/nginx/{conf,conf.d,html,logs}原创 2019-12-25 15:35:34 · 149 阅读 · 0 评论 -
docker笔记
docker常用命令:docker versiondocker imagesdockerfile构建镜像:docker build -t docker .docker stop $(docker ps -a -q)docker rmi $(docker images -q)删除时使用name 不要用 IMAGE ID 删除name后删除 IMAGE ID创建一个需要长期...原创 2019-12-25 15:26:40 · 3016 阅读 · 0 评论 -
MySQL DATEDIFF DATE_ADD和TIMESTAMPDIFF计算时间差
MySQL DATEDIFF函数计算时间间隔计算table表中next_visit_dt与当前时间相差一天,为当前日期后一天select * from table where datediff(next_visit_dt,now()) = 1原创 2019-12-12 10:24:46 · 686 阅读 · 0 评论 -
MySQL查询结果分组排序空值排在最后等相关
MySQL查询结果排序相关MySQL查询结果排序,先升序 再将空值排在最后select * from table order by sortnum is null,sortnum asc;MySQL order by case when查询结果排序,先区分排序优先级升序,然后空值排最后,最后升序last_visit_dt = ‘1900-01-01 00:00:00’ 的优先级最低...原创 2019-12-11 12:09:07 · 3097 阅读 · 0 评论 -
使用ApplicationListener监听使方法仅在项目启动时执行一次
使用场景在一些业务场景中,当容器初始化完成之后,需要处理一些操作,比如一些数据的加载、初始化缓存、特定任务的注册等等。这个时候我们就可以使用Spring提供的ApplicationListener来进行操作。用法本文以在Spring boot下的使用为例来进行说明。首先,需要实现ApplicationListener接口并实现onApplicationEvent方法。把需要处理的操作放在on...原创 2019-12-03 11:20:40 · 43117 阅读 · 3 评论 -
Java8 stream根据字段分组并排序
Java8 stream根据字段分组并排序1.根据字符串类型日期分组,并按照日期升序排序,返回TreeMap<String,List>,map的key为字符串日期,value为listArrayList<PlnexecutionRecord> records = plnExectionRecordMapper.selectRecord(ids[i]);TreeMap&...原创 2019-12-03 10:20:31 · 74636 阅读 · 2 评论 -
SQL根据date查询出String类型的日期、时间、星期
SQL根据date查询出String类型的日期、时间、星期SELECT DATE_FORMAT(NOW(),'%Y-%m-%d') as date;SELECT DATE_FORMAT(NOW(),'%H:%i') as time;SELECT DATE_FORMAT(NOW(),'%w') as week;原创 2019-12-03 10:19:51 · 906 阅读 · 1 评论 -
sql时间戳类型与日期类型转换
sql时间戳类型与日期类型转换SELECT FROM_UNIXTIME(1572489874);SELECT UNIX_TIMESTAMP(NOW());select UNIX_TIMESTAMP(date_add( NOW( ), INTERVAL - 20 MINUTE )) > UNIX_TIMESTAMP(NOW());原创 2019-12-03 10:19:08 · 862 阅读 · 0 评论 -
springmvc rest风格请求参数中传递array数组类型的入参
springmvc rest风格请求参数中传递array数组类型的入参需要将list转array,用@PathVariable String[] ids实现。且前端传递多个参数时用逗号分隔。原创 2019-12-03 10:18:39 · 1904 阅读 · 0 评论 -
mybatis判断参数是否为空
mybatis判断参数是否为空以参数名为str为例:<if test="str != null and str != ''.toString()"></if><if test="@org.apache.commons.lang3.StringUtils@isNotBlank(str)"></if><if test="str != nul...原创 2019-12-03 10:13:56 · 2454 阅读 · 0 评论 -
fastjson List转JSONArray
fastjson List转JSONArrayList<T> list = new ArrayList<T>();JSONArray array= JSON.parseArray(JSON.toJSONString(list));原创 2019-12-03 10:13:20 · 363 阅读 · 0 评论 -
java判断字符串元素包含中文
java判断字符串元素包含中文原理:将字符串解析为byte数组后,利用解析后中文长度不同进行判断。gbk的长度为2,utf8的长度为3,iso88591的长度为1,unicode为4。//true:无汉字 false:有汉字boolean flag = (str.length() == str.getBytes().length); @Test public void ...原创 2019-12-03 10:12:31 · 378 阅读 · 0 评论 -
工作笔记2
java判断字符串元素包含中文原理:将字符串解析为byte数组后,利用解析后中文长度不同进行判断。gbk的长度为2,utf8的长度为3,iso88591的长度为1,unicode为4。//true:无汉字 false:有汉字boolean flag = (str.length() == str.getBytes().length); @Test public void ...原创 2019-10-11 12:15:24 · 37140 阅读 · 1 评论 -
在PowerDesigner中搜索表,提示the object symbol is hidden or protected
在PowerDesigner中搜索表,提示the object symbol is hidden or protected解决方案:右键-》Diagram -》Show Symbols... -》Diagram ,在要找的表前打钩,OK即可。原创 2019-06-20 16:01:24 · 994 阅读 · 0 评论 -
docker从入门到实战
1. 虚拟化在计算机中,虚拟化是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过...原创 2019-04-30 14:37:42 · 911 阅读 · 0 评论 -
windows查看端口占用,并强制结束占用进程
好记性不如烂笔头,之前用过,再用却忘了原创 2019-04-17 16:55:11 · 35441 阅读 · 1 评论 -
java阳历转阴历工具类
java阳历转阴历工具类:java阳历转阴历工具类参考链接1. 闲来无事,听说朋友的需求用到阳历转阴历,自己也没思路,求助百度,参考链接后修改出来一份工具类。代码如下:package com.surekam.common;import java.text.ParseException;import java.text.SimpleDateFormat;import java.u...原创 2018-12-27 17:47:22 · 1520 阅读 · 0 评论 -
preparing launch delegate终极解决方案
preparing launch delegate网上百度的都不好使,最终发现mybatis的配置文件mapper.xml中的方法名一样导致冲突原创 2018-10-30 16:42:28 · 1032 阅读 · 0 评论