Java进阶
文章平均质量分 55
木胭脂沾染了灰
这个作者很懒,什么都没留下…
展开
-
多线程批量执行事务处理
背景:有个数据量很大的列表,需要插入,由于数据量过大,所以分批批量插入,然后这些插入没有关联性,所以使用多线程来执行,提高效率,但是如果其中某一次执行失败,需要整体回滚;如下是核心代码://批量插 List<LockCurrencyReturnSettle> list = new ArrayList<>(userTotalBuyRecord.size()); for (LockCurrencyBuyRecordVo vo : userTota原创 2021-11-19 15:18:12 · 1116 阅读 · 2 评论 -
自定义排序 order by case when
需求:在一张表上有状态值为 0,1,2,3,4...现在需要将状态为0的展示在上面,后续的数据按照时间倒序排序,用一条sql语句实现Select * from tableA ORDER BY ColA , CASE WHEN type = 5 THEN 200 WHEN type = 6 ...转载 2021-08-26 15:13:52 · 546 阅读 · 0 评论 -
for update加锁
一、for update定义for update是一种行级锁,又叫排它锁,一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行.如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式锁表,一直到提交或复原该事务为止。行锁永远是独占方式锁。只有当出现如下之一的条件,才会释放共享更新锁:1、执行提交(COMMIT)语句2、退转载 2021-06-08 14:24:04 · 3002 阅读 · 1 评论 -
spring boot shiro实战
1.添加pom <!--shiro--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> </dependency>原创 2021-05-19 10:12:44 · 192 阅读 · 0 评论 -
RabbitMQ实践
1.maven <!--RabbitMq--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> <version>1.5.2.RELEASE</versio原创 2021-04-27 15:44:32 · 151 阅读 · 0 评论 -
MySQL数据库设计规范
MySQL数据库设计规范(仅供参考)目录规范背景与目的 设计规范 2.1 数据库设计 2.1.1 库名 2.1.2 表结构 2.1.3 列数据类型优化 2.1.4 索引设计 2.1.5 分库分表、分区表 2.1.6 字符集 2.1.7 程序DAO层设计建议 2.1.8 一个规范的建表语句示例 2.2 SQL编写 2.2.1 DML语句 2.2.2 多表连接 2.2.3 事务 2.2.4 排序和分组 2.2.5 线上禁止使用的SQL语句1. 规范背景与目的M...原创 2021-04-21 17:55:23 · 162 阅读 · 0 评论 -
springboot redisson分布式锁
1.添加依赖 <!--springboot startWeb --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>原创 2021-04-19 15:49:33 · 179 阅读 · 0 评论 -
redis lua脚本操作库存(秒杀场景)
使用Lua脚本的好处 1、减少网络开销:可以将多个请求通过脚本的形式一次发送,减少网络时延和请求次数。 2、原子性的操作:Redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。因此在编写脚本的过程中无需担心会出现竞态条件,无需使用事务。 3、代码复用:客户端发送的脚步会永久存在redis中,这样,其他客户端可以复用这一脚本来完成相同的逻辑。 4、速度快:见 与其它语言的性能比较, 还有一个 JIT编译器可以显著地提高多数任务的性能; 对于那些仍然对性...原创 2021-04-19 14:50:52 · 681 阅读 · 0 评论 -
spring boot自定义注解
1.添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>2.创建@interface关于@Target @Retention @Documented这几个注解可以查看一下这个文件https://blog.csdn.net/原创 2021-03-24 18:14:35 · 96 阅读 · 0 评论 -
spring boot集成xxl-job调度器
xxl-job调度器参考地址:https://www.jianshu.com/p/fa7186bea84b此处省略创建xxl-job调度中心,主要是示范项目中使用1.引入maven包<!-- xxl-job-core --> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-原创 2021-03-17 18:11:34 · 239 阅读 · 0 评论 -
Graphics2D 画图透明通道处理
为了生成海报画图,有的图片是带有透明通道的。但是生成后就处理成黑色背景网上搜了好多都不符合,为了后面小伙伴的方便。特分享下~下图是生成的效果左侧:原图 右侧没有添加透明通道生成的图重点的核心代码来了:/** * 缩放图片+透明 * * @param image 需要缩放的图片 * @param width 宽 * @param height 高 * @return BufferedI...原创 2020-07-03 15:18:20 · 828 阅读 · 0 评论 -
java进阶知识梳理
序列化序列化条件1) 必须实现 java.IO.serializable 对象2) 该类的所有属性必须是可序列化的,如果不是需要用transient关键词标注 序列化关键词:ObjectOutputStream WriteObject() 反序列化:读取文件流 转换成实体类 ObjectInputStream ReadO原创 2017-11-14 09:58:14 · 378 阅读 · 0 评论 -
java 多线程三种方式
多线程Java 给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语 -进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,原创 2017-11-14 10:50:56 · 239 阅读 · 0 评论 -
数据库连接池
数据库连接池数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接原创 2017-11-29 16:00:57 · 192 阅读 · 0 评论 -
filter常用场景
javaweb学习总结(四十六)——Filter(过滤器)常见应用一、统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 package me.gacl.web.filter; 2 3 import java.io.IOException; 4 import javax.servlet.Filter转载 2017-11-21 11:38:26 · 489 阅读 · 0 评论 -
Gecorator装饰设计模式(Request、Response)
只为成功找方法,不为失败找借口!javaweb学习总结(四十三)——Filter高级开发 在filter中可以得到代表用户请求和响应的request、response对象,因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求。一、Decorator设计模式1.1、De转载 2017-11-21 14:30:35 · 379 阅读 · 0 评论 -
redis整理
使用jedis客户端操作redisredis优点1)redis存储在内存中,速度快,读取速度11万/秒 写8万/秒2)redis支持数据种类丰富,支持string、list、set、sort set、hash3) 支持数据备份,RDB内存快照和AOF日志文件4)丰富的特性,支持设置过期时间,过期删除5)支持事务,操作的原子性 常见问题及解决方案:1)尽量避免Ma原创 2017-12-01 09:50:08 · 170 阅读 · 0 评论 -
Linux安装tomcat jdk
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 安装jdk:https://www.cnblogs.com/shihaimi原创 2017-12-05 14:03:22 · 208 阅读 · 0 评论 -
Java三种代理模式
举一个通俗的例子,小明是一个程序员,主要工作是开发,有一天领导要求小明出差成都,那么小明童鞋需要做:1、订去程机票2、订成都酒店3、开发4、订回程机票5、报销相信所有干过开发的童鞋都会受不了前前后后那么一堆事情,我一个干开发的,怎么就搞起了那么多琐碎的事情呢?还是另请高明吧~~但是领导已经决定了~~~~我只能吟诗一首:苟~富贵~~~扯远了。相信所有码农都有这么一个想法:转载 2018-01-03 10:42:23 · 349 阅读 · 0 评论 -
静态内部类实现单列
优点:线程安全、延迟加载public class SerializeUtils {//私有构造方法private SerializeUtils() {}//定义一个静态的内部类返回一个静态实例化private static class serializeUtilsHolder {//定义一个私有实例化属性private static SerializeUtil原创 2018-01-23 10:49:46 · 258 阅读 · 0 评论 -
Maven私服搭建 上传jar包
http://10.1.4.150:8081/ Nexus3 私有库搭建 https://jingyan.baidu.com/article/624e745945678534e8ba5aff.html 在maven 目录/conf/settings.xml中配置仓库密码 maven-releases admin原创 2018-01-17 15:38:16 · 263 阅读 · 0 评论 -
Callable、Future多线程 线程池处理有返回值
package com.utils;import javax.xml.crypto.Data;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.concurrent.*;/** * Author: linjunit * Version: * Dat原创 2017-11-14 10:16:09 · 313 阅读 · 0 评论