- 博客(236)
- 收藏
- 关注
原创 redis分布式锁
(1)存在的问题:假设线程获取了锁之后,在执行任务的过程中挂掉,来不及显示地执行del命令释放锁,那么竞争该锁的线程都会执行不了,产生死锁的情况。返回1,说明该进程获得锁,将 key 的值设为 value 返回0,说明其他进程已经获得了锁,进程不能进入临界区。加分布式锁,返回1,说明该进程获得锁,将 key 的值设为 value 返回0,说明其他进程已经获得了锁,进程不能进入临界区。2、解锁:当得到锁的线程执行完任务之后,使用del命令释放锁,以便其他线程可以继续执行setnx命令来获得锁。
2024-01-07 21:59:06 480
原创 SpringBoot系列 logback-spring日志配置使用记录以及解决依赖包冲突问题
SpringBoot官方推荐使用logback-spring.xml作为logback框架的自定义日志配置文件(例如:使用logback-spring.xml而不是logback.xml),因为带-spring后缀的配置文件可以使用SpringBoot提供的一些高级功能,如profile多环境日志输出。由于项目中引用了hive的依赖包,导致日志文件冲突,项目启动失败,解决冲突方式是排除了spring-boot-starter-logging依赖包,导致添加logback-spring.xml不生效,
2023-03-26 21:44:10 1801 1
原创 springboot项目的jar瘦身使用 java -Dloader.path=./lib
jar瘦身java -Dloader.path=./lib -jar XXX.jar
2023-02-11 17:34:21 614 1
原创 lambda函数
lambda函数Function函数JDK8新增的函数式接口接口只有一个抽象方法apply, 接受一个T类型参数, 返回一个R类型参数, T, R表示泛型, 可以相同除了一个抽象的apply方法之外, Function存在两个默认的default方法,compose和andThen, 这两个方法都是用来组合不同的Function的 这个函数式接口被大量应用于集合以及Stream(流)中 private static Integer method(Function<String, I
2022-05-29 11:20:03 87
原创 row_number() over partition by 分组聚合
row_number() over partition by 分组聚合分组聚合,就是先分组再排序,可以的话顺手标个排名;如果不想分组也可以排名;如果不想分组同时再去重排名也可以Oracle和SQL server的关键字是over partition bymysql的无关键字row_number() over (partition by col1 order bycol2),表示根据col1分组,在分组内部根据col2排序-- 建表USE db_03;DROP TABLE IF
2022-05-27 16:31:14 5288
原创 如何判断oracle数据库的列中有中文数据的三种方式
1:使用ASCIISTR函数判别ASCIISTR函数说明:ASCIISTR返回字符的ASCII形式的字符串。非ASCII的字符被转化为\xxxx的形式。使用ASCIISTR函数也是根据非ASCII字符会被转化这个特性来判别中文字符,只要里面包含中文字符,则必定会有\xxx这样的字符。且简体汉字的编码范围是B0A1F7FE.如下例子所示CREATE TABLE TEST( NAME_ONE CHAR(24) ,NAME_TWO VARCHAR2(24) ,NAME_
2022-05-27 15:42:01 4074
原创 oracle 的trunc使用与instr()函数使用
oracle 的trunc使用ORACLE中TRUNC是截取的函数用在日期类型上,就是截取到日或时间。以下为具体例子。SELECT TRUNC(SYSDATE) FROM DUAL;默认是截取系统日期到日,SELECT TRUNC(SYSDATE)+2/24 FROM DUAL得到2012-12-19比如值为"2012-12-19 14:30:50"的日期变量TRUNC(SYSDATE)得到 2012-12-19 , 和TRUNC(SYSDATE,‘DD’)一样TRUNC(SYSDATE
2022-04-07 19:43:26 7303
原创 清空某一topic数据清空
kafka全部数据清空与某一topic数据清空某一topic数据清空查看当前所有topicbin/kafka-topics.sh --list --zookeeper 12.23.109.50:31001比如目前需要删除test这一topic,目前kafka_2.11-1.1.1以上版本默认delete.topic.enable=true,即是说使用命令./kafka-topics.sh --zookeeper node1:2181 --delete --topic test该命令将会在
2022-03-16 21:09:40 3763
原创 SQL中的cast()函数
SQL中的cast()函数https://blog.csdn.net/qq_21101587/article/details/78642423语法:CAST (expression AS data_type)SELECT CAST(‘9.0’ AS decimal) 结果:9有些number类型的字段,转换时报无效数字异常处理,SELECT CAST(‘9.5’ AS decimal(10,2))SELECT CAST(‘9.5’ AS decimal) 解决无效数字,其他符号会转义
2022-02-18 17:46:24 24372
原创 ObjectMapper详细介绍,真的就这么简单
ObjectMapper详细介绍,真的就这么简单参考https://blog.csdn.net/qq_42017395/article/details/107555339
2022-01-16 20:41:21 915
原创 工具类commons-lang3(常用)
工具类commons-lang3(常用)https://www.jianshu.com/p/1886903ed14c<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3<
2022-01-08 14:31:04 825
原创 DQL,DML,DDL,DCL,TCL区别
SQL中DQL,DML,DDL,DCL,TCL的区别dba拥有所以权限;普通应用拥有dml;只读账号需要授权查询,ower用户执行授权语句,同义词,给用户teacher授予系统的create session权限grant create session to TEACHER;DCL权限授权表操作grant insert,update,delete,select on ower.table to app;授权执行存储过程grant execute on ower.start to
2022-01-01 14:11:30 445
原创 SpringBoot中使用多线程开启并行任务
SpringBoot中使用多线程开启并行任务定时调度,每天23点执行一次:0 0 23 * * ?设置总开关,根据配置表增加数据,判断是否调用存储过程,并行执行存储过程。执行成功后修改配置表;定时更新数据,并保留轨迹;获取异步方法返回值CompletableFuture是对Feature的增强,Feature只能处理简单的异步任务,而CompletableFuture可以将多个异步任务进行复杂的组合。如下:@RestControllerpublic class AsyncControl
2021-12-19 20:49:21 2247
原创 SpringContextHolder工具类获取spring对象
SpringContextHolder工具类获取spring对象通过springContextHolder静态注入实体Bean1.工具类用途?该工具类主要用于那些没有归入spring框架管理的类却要调用spring容器中的bean提供的工具类,在spring中要通过IOC依赖注入来取得对应的对象,但是该类通过实现ApplicationContextAware接口,以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonConte
2021-12-04 19:58:46 1154
原创 java的MybatisPlus调用储存过程的返回数据
java的MybatisPlus调用储存过程的返回数据1、调用存储过程核心 statementType=”CALLABLE”mybatis调用存储过程时需要指定statementType=”CALLABLE”,这样Mybatis内部中调用sql语句时将采用CallableStatementHandler,而CallableStatementHandler内部将使用CallableStatement来调用存储过程。如果存储过程是有参数的,需要指定mode属性,可选值有IN、OUT和INO
2021-11-27 17:23:58 15442 2
原创 在SpringBoot中通过jasypt进行加密解密的方法
在SpringBoot中通过jasypt进行加密解密的方法在SpringBoot中,通过jasypt可以进行加密解密. 这个是双向的, 且可以配置密钥.加密使用步骤1:引入依赖<!-- 数据库加密 --> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-bo
2021-11-21 21:38:50 862
原创 System.currentTimeMillis()会重复吗
原子操作类AtomicInteger详解参考https://blog.csdn.net/fanrenxiang/article/details/80623884生成12位连续数字 for (int i = 0; i < 10; i++) { System.out.println(extracted12()); } private static AtomicInteger ato = new AtomicInteger(0)
2021-11-21 19:00:28 1804
原创 @Transactional注解Spring Boot 事务方法调用
@Transactional注解 事务方法调用总结,事务方法调用非事务方法-生效非事务方法调用事务方法-不生效事务方法调用非事务方法(相同类下)import edu.haut.springboottest.entity.TestTable;import edu.haut.springboottest.mapper.TestTableMapper;import org.springframework.stereotype.Service;import org.springframework
2021-11-21 12:06:20 966
原创 springboot 注解@Transactional失效的原因
springboot 注解@Transactional失效的原因参考源码分析https://blog.csdn.net/oyc619491800/article/details/105826597一:声明式事务@Transactional二:注解@Transactional使用三:常用,使用该注解时,记得加异常回滚,readOnly 属性readOnly :指定事务是否为只读事务,默认值为 false;为了忽略那些不需要事务的方法,比如读取数据,可以设置read-only 为 t
2021-11-21 11:57:41 12694
原创 枚举的简单使用
枚举的简单使用有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便方法名称 描述values() 以数组形式返回枚举类型的所有成员valueOf() 将普通字符串转换为枚举实例compareTo() 比较两个枚举成员在定义时的顺序ordinal() 获取枚举成员的索引位置public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("
2021-11-07 20:38:27 70
原创 全局唯一id生成之雪花算法(Twitter_Snowflake)
雪花算法如上图:雪花算法生成的id,总共64位第一位作为保留位,默认0中间41位用来存放时间戳,是当前时间与初始时间的差值,(1L << 41) / (1000L * 60 * 60 * 24 * 365) = 69年后10位是机器id,可满足同时(1L << 10) = 1024个机器同时生成id最后12位作为随机序列,每个机器,每毫秒可生成(1L << 12) = 4096个不同的值使用:可配置工作机器id:workerId(0-31)最大31;数
2021-11-06 17:31:04 661
原创 java.nio.charset:Input length = 1异常
Java NIO 报java.nio.charset.MalformedInputException: Input length = 1异常1:当使用decoder.decode方法时,会抛异常。2: 查了api,如开头的截图“当输入的字节数组对于给定的charset是非法的,3:或者给定的输入字节数组不是16位的Unicode数组时,就会抛出异常”我理解的意思是,4:把utf8格式的中文转换成gbk的字符缓冲时,对于gbk,这个utf8字节缓冲三个字节一个汉字,然而gbk是两个字节一个汉字,因
2021-10-29 12:21:19 5130
原创 SpringBoot启动时将数据库数据加载到内存的静态map里
SpringBoot启动时将数据库数据加载到内存的静态map里实现CommandLineRunner接口实现CommandLineRunner接口,@Order注解里面的参数是类执行的顺序,由小到大顺序。监听接口方式,启动服务,执行方式时仍然提供服务,服务初始化之后,执行方法。@Componentpublic class SettingConfig implements CommandLineRunner {public static Map<String,Object>=ne
2021-10-25 21:14:18 1727
转载 浅谈oracle树状结构层级查询
https://blog.csdn.net/u012615705/article/details/78321022?
2021-10-10 12:38:59 176
原创 jasypt对springboot加密使用
jasypt对springboot加密使用1.版本说明及引用因为考虑到我的项目springboot-boot-starter是2.3.3RELEASE版本,所以关于jasypt使用的是jasypt-spring-boot-starter2.1.2版本。即<!-- https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter --><dependency>
2021-10-01 19:33:45 474
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人