java汇总
文章平均质量分 62
java相关汇总
厄尔尼诺的夏天
热爱各有不同,青年本该如此,每一代逐日移山的青年,都有自己奋不顾身的热爱,每一份炽烈的热爱,都值得被用心对待
展开
-
自定义注解校验枚举值
如果状态是0,1,3 则可以用不连续数字自定义注解校验// 元注解表示该注解可以用在的地方,此定义注解可以用在属性上// 元注解被它所注解的注解保留多久String message() default "类型不匹配";Class原创 2023-01-08 11:03:45 · 1426 阅读 · 0 评论 -
CSDN转pdf
点击回车(不用会存在大片空白)原创 2022-10-10 09:56:22 · 204 阅读 · 0 评论 -
post传递url调用爬虫
post传递url调用爬虫private void executePost(CommodityDetailsVo commodityDetailsVo) { CloseableHttpClient httpClient = HttpClients.createDefault(); Map<String, Object> paramMap = new HashMap<>(); paramMap.put("member_id", comm原创 2021-08-13 12:47:03 · 122 阅读 · 0 评论 -
@RequestBody 和 @GetMapping 同时使用
当我们使用@GetMapping 的时候配合使用@RequestBody 接受参数会发现无法接受到参数。网上说@RequestBody 不能和@GetMapping 搭配使用,需要使用@PostMappig。其实不是必然。@RequestBody 可以处理的是请求的body体内容,需要识别Content-Type的值。http请求为application/json @RequestBody 才可以解析body值。@GetMapping 前端大多使用了 application/x-www-form-原创 2021-10-18 11:18:32 · 6058 阅读 · 0 评论 -
MyBatisPlus使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、MyBatisPlus使用前配置1. MyBatisPlus导入对应的依赖2.连接数据库3. 配置日志使用位置二、主键策略三、自动填充四、分页查询五、逻辑删除六、性能分析插件前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、MyBatisPlus使用转载 2021-08-24 00:14:51 · 726 阅读 · 0 评论 -
idea debug使用和进阶
在这里插入图片描述](https://img-blog.csdnimg.cn/6a1be47a6ce6490387754cc7de751405.png。打在接口的方法上,会在实现类的方法停顿(可快速找到接口的实现类)断点后的步骤不执行(可用在不想插入数据库数据)方法断点打在方法上,可以在出入方法时停顿。作用在属性上,当属性值变化时会被监控。经过filter和map后数据的变化。4.报错后断点停止(不向下进行)方法断点(接口跳转实现类)异常断点(全局捕获异常)会打印类信息和方法信息。字段断点(读写监控)原创 2021-01-12 10:01:47 · 160 阅读 · 0 评论 -
少量枚举类自定义注解校验参数
自定义注解前言一、枚举校验二、连续数字状态校验三、不连续数字自定义注解校验注意前言传参时候总会遇到各式各样的传参,有些状态传参,0或1,有些不连续的数值传参像1,2, 5等,本文主要记录这两种参数校验的解决方式一、枚举校验枚举校验一般是用在逻辑之中进行的参数校验private void checkStatus(Integer imgStatus) { if (ObjectUtil.isEmpty(BankBannerEnums.STATUS.findByCode(imgSta原创 2021-10-22 14:31:27 · 213 阅读 · 0 评论 -
java8 stream 的项目应用
提示:项目中常用lambda的表达式java8 stream 的项目应用案例案例// 转成set时直接用toSet,或者用.distinct()做去重// 把实体类的集合抽出某属性转成listList<Integer> collect = banners.stream().map(BankBanner::getPictureSort).collect(Collectors.toList());// 把实体类的集合转map//返回 对象集合以类属性一升序排序list.s原创 2021-10-22 17:25:27 · 291 阅读 · 0 评论 -
定时任务 @Scheduled(cron = “ “)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档定时任务一、定时任务 @Scheduled(cron = " ")二、其他定时任务一、定时任务 @Scheduled(cron = " ")简单的定时任务,在方法上加入注解就可以实现定时,定时规则如下按顺序依次为秒(0~59)分钟(0~59)小时(0~23)天(月)(0~31,但是你需要考虑你月的天数)月(0~11)天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)7.年份(原创 2021-08-03 22:13:40 · 1818 阅读 · 0 评论 -
idea快捷键技巧
Idea使用技巧随着IDEA的大热,越来越多的人想要学习Idea的使用,但是idea和eclipse完全不同的快捷键和操作方式使得大家的学习成本非常高昂,虽然idea提供了eclipse的快捷键模式,但是兼容度并不完美,还有部分按键的混乱让人使用起来非常的不爽。如果你也有以上烦恼,那么恭喜你找到了捷径,本文提供了让你快速上手idea的机会。本文和市面上大多的博文的不同之处在于,本文并没有随意的罗列idea那庞大的快捷键清单。而是选择了工作中你常用的,并且使用频率在100%、80%、60%、30%等非常高频原创 2021-10-10 22:46:27 · 1241 阅读 · 0 评论 -
mysql安装
更换电脑,一切要重新安装,之前csdn账号丢失,今天再次记录下mysql的安装。bilibili:https://www.bilibili.com/video/BV1W7411C7iy?from=search&seid=10813857927598566703官网下载区域直通链接:https://dev.mysql.com/downloads/知乎链接:https://zhuanlan.zhihu.com/p/88271915这是一个教程,先生讲的很好,也完全正确...原创 2021-07-26 15:54:59 · 70 阅读 · 0 评论 -
MyBatis-Plus 条件构造器(Wrapper)
MyBatis-Plus 条件构造器(Wrapper)一、Wrapper的继承关系:Wrapper 条件构造抽象类– AbstractWrapper 查询条件封装,用于生成 sql 中的 where 语句。– QueryWrapper Entity 对象封装操作类,用于查询。– UpdateWrapper Update 条件封装操作类,用于更新。– AbstractLambdaWrapper 使用 Lambda 表达式封装 wrapper– LambdaQueryWrapper 使用 Lam转载 2021-08-13 12:13:57 · 1548 阅读 · 0 评论 -
springBoot监听器ApplicationEventPublisherAware应用
好处监听器可以使核心业务与子业务进行解耦,也方便后期的业务的扩展。如新用户注册之后,发送邮件或短信,此时可以在保存用户之后,发布一个新用户的注册成功事件,通过监听该事件来实现发送邮件或短信的功能。后期新增一个对新用户进行xxx功能,此时可以新写一个监听注册成功事件的监听器,来处理新的业务逻辑,而不需要修改之前的注册逻辑。代码实体类package com.erp.payroll.evenlistener;/** * @author guang * @version V1.0 * @Packa原创 2021-12-01 10:34:19 · 1717 阅读 · 0 评论 -
java 校验图片的大小,和比例尺寸
一、file文件校验像素,比例,大小import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException; import javax.imageio.ImageIO; public class CheckImagesFormatUtil { /** * 图片的像素判断 * @param file 文件 * @param imageWidth 图片宽度 * @param ima原创 2021-12-14 19:32:51 · 2863 阅读 · 0 评论 -
CAS+失败重试方式实现数据库的原子性更新
在数据库修改单条数据时,常用的方式是select for update的悲观锁机制,如果锁竞争比较大,没有获得锁的操作会阻塞。使用CAS乐观锁的方式,可以大大提高并发性。例如,在分布式服务中,多个用户并发下单操作前会先扣减库存时,网上盗图,服务1,服务2和服务3为不同机器上的库存服务。库存扣减操作流程如下:使用cas方式的乐观锁,当库存还剩3个,3个用户同时下单,服务同时扣减库存,可以并发地扣减成功,提高了并发性。如果库存还剩1个,3个用户同时下单,同时扣减库存,这时只有1个用户会操作成功,其余2个会转载 2021-11-15 15:17:52 · 413 阅读 · 0 评论 -
redis学习记录
redis学习记录前言一、笔记整理1.什么是redis?2.redis和比较其他Nosql的特点1.redis支持数据的持久化,可以将内存中的数据保存到磁盘中,重启时会再次加载使用。2.redis不仅仅支持k-v类型数据,还提供list、set、hash、string、zset等结构数据储存3.性能高,读写速度快,数据存在内存中类似于hashmap(链表+红黑树)。4.支持事务,操作都是原子性。同时成功或失败。5.特性丰富,可用于缓存。消息,按key设置时间过期自动删除。3.redis持久化机制1.RDB2原创 2021-11-22 16:52:44 · 946 阅读 · 0 评论 -
添加一条新数据并返回此数据的ID(主键)
解决方案:在编写Mapper时,加入以下配置Mybatis 配置文件 useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。插入返回的主键id是映射回原实体类中的!所以在Service层取出id并返回链接: 原文....转载 2021-11-18 12:47:04 · 2431 阅读 · 3 评论 -
IService和他的多个ServiceImpl
记录简单的接口和他的多个实现类的准确调用IService和他的多个ServiceImpl先上接口代码public interface IWorkFlowHandler<REQ1, VO1, REQ2, REQ3, REQ4, REQ5, REQ6, REQ7, REQ8, VO8, REQ9> { /** * 分页列表 * @param req1 * @return */ IPage<VO1> listPage(REQ原创 2021-10-29 14:24:01 · 1820 阅读 · 0 评论 -
select的for update
select的for updateselect ...... for update查询校验select … for update查询select查询是不加锁的,select…for update是会加锁的,而且是悲观锁,但是在不同查询条件时候加的锁的类型(行锁,表锁)是不同的。select * from t_user where id = 1 for update;在where 后面查询条件是主键索引,唯一索引时候是行锁查询条件是普通字段时候加的是表锁校验**首先:**关闭自动提交,通过s原创 2021-11-07 01:23:48 · 10919 阅读 · 2 评论 -
Java项目启动时执行指定方法的几种方式
很多时候我们都会碰到需要在程序启动时去执行的方法,比如说去读取某个配置,预加载缓存,定时任务的初始化等。这里给出几种解决方案供大家参考。一、使用@PostConstruct注解这个注解呢,可以在Spring加载这个类的时候执行一次。来看一下下方代码。@Componentpublic class Test { public Test(){ System.out.println("我最先执行"); } /**原创 2021-11-30 19:46:16 · 2421 阅读 · 0 评论 -
dom4j读取xml
原创 2021-12-15 11:10:13 · 3232 阅读 · 0 评论 -
jdk8函数式接口
文章目录一、pandas是什么?一、pandas是什么?转载 2021-11-23 11:30:23 · 125 阅读 · 0 评论 -
mybatis-plus-mybatis-mate 数据权限
0、简介mybatis-mate 为 mp 企业级模块,支持分库分表,数据审计、数据敏感词过滤(AC算法),字段加密,字典回写(数据绑定),数据权限,表结构自动生成 SQL 维护等,旨在更敏捷优雅处理数据。1、主要功能字典绑定字段加密数据脱敏表结构动态维护数据审计记录数据范围(数据权限)数据库分库分表、动态据源、读写分离、数据库健康检查自动切换。2、使用2.1 依赖导入Spring Boot 引入自动依赖注解包<dependency> <groupId>原创 2021-11-07 01:52:06 · 594 阅读 · 0 评论 -
@mapper导包错误
项目场景:启动项目时候出错问题描述:提示报错信息Can't generate mapping method with primitive return type.Can't generate mapping method from iterable type to non-iterable type.Can't generate mapping method from non-iterable type to iterable type.Can't generate mapping meth原创 2021-10-27 17:22:32 · 1042 阅读 · 0 评论 -
batchUpdate sql异常
项目场景:batchUpdate,书写 sql时候出现sql异常问题描述:batchUpdate,书写 sql时候出现sql异常,之前公司一直使用,没有问题<update id="updateAllAvailable"> <foreach collection="skuOptionList" item="item" index="index" open="" close="" separator=";"> update t_xxx <s原创 2021-10-27 17:28:15 · 420 阅读 · 0 评论 -
Integer 在-128-127之间发生了什么?
Integer 在-128-127之间发生了什么?Integer的.equals和==思考最初的问题静态内部类IntegerCache初始化缓存的过程如下Integer的.equals和==这是一个基础的问题,掌握一些java的人,或许能讲出一些为什么。但是再深究一下才会发现这究竟是为什么一段普通的代码public class Demo { public static void main(String[] args) { Integer i1 = 100;原创 2021-10-28 21:02:12 · 376 阅读 · 0 评论 -
关闭占用端口号
关闭端口号1. netstat -ano | findstr 80702. tasklist|findstr “73784”3. taskkill /f /t /im msedge.exe原创 2021-11-03 09:04:26 · 184 阅读 · 0 评论 -
解决try-catch (持续学习更新.......)
简洁代码格式,持续学习更新解决try-catch 一、解决controller层过多的try-catch一、解决controller层过多的try-catch1.使用注解@ControllerAdvice@ExceptionHandler@ControllerAdvicepublic class ExceptionConfigController { // 专门用来捕获和处理Controller层的空指针异常 @ExceptionHandler(NullPointerExce原创 2021-10-27 16:02:19 · 174 阅读 · 0 评论 -
Optional的使用
Optional的使用前言创建Optional实例访问 Optional 对象的值返回默认值orElse() 和 orElseGet() 的不同之处返回异常转换值过滤值Optional 类的链式方法java9 增强Optional 应该怎样用?总结前言为什么optional会出现?从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。本转载 2021-11-10 12:39:59 · 488 阅读 · 0 评论 -
创建线程池并使用
文章目录一、pandas是什么?一、pandas是什么?原创 2021-11-23 20:14:22 · 319 阅读 · 0 评论 -
mysql学习记录
提示:mysql学习记录mysql学习记录一、mysql的层次结构连接层:服务层:引擎层存储层二、索引1.什么是索引?2.sql执行的先后顺序2.读入数据总结一、mysql的层次结构MySQL逻辑可分为四个层次,分别为:连接层,服务层,引擎层,存储层 。连接层:提供与客户端连接的服务。当客户端发出一个请求后(如增删改查的SQL语句),首先到达该层,将服务器与客户端建立连接。常用的与JDBC服务层:服务层分两个作用:1.提供各种用户使用的接口。 如select、insert等2.提供原创 2021-10-28 19:05:42 · 159 阅读 · 0 评论 -
JVM学习记录
目录一.引言1.什么是JVM2.学习路线二.内存结构1.程序计数器1.1定义1.2作用2.虚拟机栈2.1定义2.2栈内存溢出(StackOverflowError)2.3线程运行诊断3.本地方法栈4.堆4.1定义4.2堆内存溢出(OutOfMemoryError)4.3堆内存诊断5.方法区5.1定义5.2组成5.3方法区内存溢出5.4运行时常量池5.5StringTable5.6StringTable特性5.7StringTable位置5.8StringTable垃圾收5.9StringTable性能调优6原创 2022-02-18 17:21:23 · 1007 阅读 · 0 评论 -
Mybatis的一级缓存和二级缓存
为什么使用缓存?程序中为什么使用缓存? 先了解一下缓存的概念:原始意义是指访问速度比一般随机存取存储器快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。对于我们编程来说,所谓的缓存,就是将程序或系统经常要调用的对象(临时数据)存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统的开销,提高效率。 对缓存有了一定的了解以后就知道了使用缓存是为了减少和数据库的交互次数,提高执行效率。那么下一个问题来了。什么样的数据能使用缓存转载 2021-12-29 17:23:05 · 104 阅读 · 0 评论 -
JUC学习记录(基础篇)
1.什么是JUC1.1 进程与线程进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程是资源分配的最小单位。线程:系统分配处理器时间资源的最小单元,或者说进程之内独立执行的一个单元执行流。线程是程序执行的最小单位。1.2线程的状态线程状态枚举类Thread.State 中有5个状态NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED1.3wati和sleep区别:(1)sleep方法是Thread的静原创 2022-02-09 16:59:33 · 462 阅读 · 0 评论 -
压缩图片生成缩略图
压缩图片生成缩略图package com.util;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import javax.imageio.ImageIO;import com.sun.原创 2021-12-15 16:38:22 · 238 阅读 · 0 评论 -
IDEA git push(推送)后,撤销推送
解决方案1.在git中右击复制想要回退的【版本号】2.在idea中点击终端3.执行git reset --hard 【版本号】回到没有问题的版本4.执行git push origin 【分支如:dev】 --forcepush到相应分支并覆盖5.完成.........原创 2022-01-04 16:39:17 · 8880 阅读 · 0 评论 -
时间复杂度
时间复杂度什么是时间复杂度?常见的时间复杂度原创 2022-01-13 19:01:43 · 222 阅读 · 0 评论 -
hashMap和hashSet
文章目录一、hashMap结构二、使用步骤1.引入库2.读入数据总结一、hashMap结构hashMap底层结构是数组+链表+红黑树当hash值相同时就会以链表形式向后拼接,当链表数量长度达到8时自动变为红黑树,remove小于8后自动转为链表。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warni原创 2022-01-17 15:39:29 · 745 阅读 · 0 评论 -
kafka学习记录
1.Kafka 概述1.1 定义kafka是一个用于分布式的基于发布/订阅模式的消息队列(Message Queue),主要用于大数据试试的处理领域。1.2 消息队列1.2.1 传统消息队列的应用场景使用消息队列的好处解耦允许你独立扩展或修改两边处理过程,只要确保他们遵守同样的接口约束。可恢复性系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息进程的挂掉,加入队列中的消息仍然可以再系统恢复后被处理。缓冲有助于控制和优化数据流经过系统的速度原创 2022-01-26 15:18:22 · 1788 阅读 · 0 评论 -
MYSQL索引与B+树
什么是索引?索引是一种排好序的可以快速查找数据的数据结构各种数据类型的索引分析没有索引假如我们没有使用索引。并且总数据有1000条。当执行sql : == select * from t_user where id = 500 ==,时,就会对id进行比较1000次,从而找到id=500的数据记录。也就是我们讲的,全局扫描。链表假如我们使用链表作为索引。当执行sql : select * from t_user where id = 500时。就会在链表中进行比较查找,当查找到第一个id=5原创 2022-01-11 20:35:44 · 1657 阅读 · 0 评论