自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 导出excel带水印

需要一些前置知识(一些基本知识)导出excel带水印:前置知识1 BufferedImage和ImageIO导出excel带水印:前置知识2 Graphics2D用法导出excel带水印:前置知识3 ByteArrayOutputStream导出excel带水印:前置知识4 BigExcelWriter导出excel带水印:前置知识5 POI包前端代码就不贴,直接看页面开始看后端代码搜索类NjryTaskInfoQueryCriteriapackage com.njry.sjzl.b

2024-05-20 16:34:58 697

原创 导出excel带水印:前置知识5 POI包

即“讨厌的电子表格格式”HSSF 是 POI 的子项目,用于处理 Excel 97-2003 格式(.xls 文件)。它允许您读取、创建和修改 Excel 文档,包括工作簿、工作表、单元格、公式等。:XSSF 是 POI 的子项目,用于处理 Excel 2007及更高版本的 XLSX 格式(基于XML的文件格式)。它支持读取和写入 XLSX 文件,并提供了对新 Excel 特性的支持。:HWPF 是 POI 的子项目,用于处理 Word 97-2003 格式的文档(.doc 文件)。

2024-05-20 16:27:20 815

原创 导出excel带水印:前置知识4 BigExcelWriter

参考地址BigExcelWriter(ExcelWriter的升级版)详解说起BigExcelWriter不得不说一下他的父亲ExcelWriterExcel 写入器ExcelWriter用于通过POI将数据写出到Excel,此对象可完成以下两个功能编辑已存在的Excel,可写出原Excel文件,也可写出到其它地方(到文件或到流)新建一个空的Excel工作簿,完成数据填充后写出(到文件或到流)对于大量数据输出,采用ExcelWriter容易引起内存溢出,因此有了BigExcelWriter。

2024-05-20 16:26:40 815

原创 导出excel带水印:前置知识3 ByteArrayOutputStream

在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。如上所示,ByteArrayOutputStream把内存中的数据读到字节数组中,而ByteArrayInputStream又把字节数组中的字节以流的形式读出,实现了对同一个字节数组的操作.ByteArrayOutputStream: 可以捕获内存缓冲区的数据,转换成字节数组。先看ByteArrayOutputStream类源码。一个简单例子(初窥法门)

2024-05-20 16:25:52 258

原创 导出excel带水印:前置知识2 Graphics2D用法

参照资料和。

2024-05-20 16:24:37 587

原创 导出excel带水印:前置知识1 BufferedImage和ImageIO

项目用到创建画笔对象(开始 Graphics2D 的使用)// 获取图片的宽高// 图片裁剪// 创建画笔对象。

2024-05-20 16:23:29 119

原创 HSSFWorkbook apache.poi设置行高和获取行高

poi中的行高单位和excel的行高单位是不一样得,excel中的行高单位是pt(point,磅)而poi中的行高单位是twips(缇)dpi(或ppi)表示分辨率,即pixel(dot) per inch,每英寸的像素(点)数。导入excel中行高最多为409pt,也就是409*20= 8180twips。pt是绝对长度,表示point(磅),是印刷行业常用单位,等于1/72英寸。px是相对长度,表示pixel(像素),是屏幕上显示数据的最基本的点。此外,px和pt,twips的换算公式是。

2024-05-16 15:35:48 301

原创 MyBatis实现Oracle中使用foreach标签实现批量插入数据以及主键自增

直接去看原文。

2024-05-16 14:29:54 354

原创 poi低版本工具类换成poi5.2导出excel表头

之前写的低版本poi 3.8工具是可以用,但是在导出的时候出现问题所以还是得用高版本工具,原来低版本链接poi低版本导入excel表头问题在处理Excel文件时,您可能已经使用了Apache POI库。然而,在使用过程中,您可能会遇到一个常见的错误:java.lang.NoSuchFieldError:Factory。这个错误通常意味着在运行时环境中存在类路径问题或不同版本的POI库冲突解决办法我把之前低版本poi 3.8 兼容删除,把里面工具类都换成5.2最新的工具类ExcelColorHe

2024-05-11 19:13:50 760

原创 用户登录后端:登录密码解密后用PasswordEncoder验证密码是否正确

这只是用户登录处理简单处理,重头戏是Security认证流程用户登录:断点看流程认证。

2024-05-11 14:28:48 324

原创 用户登录:断点看流程认证

参考原文。

2024-05-11 14:13:20 718

原创 用户登录后端:验签

前端请求拦截器工具类 cryptomd5Util.jsconst crypto = require('crypto')const publicKey = 'xxxx'export function encryptedHmacMd5Data(appid, data, timestamp) { const hmac = crypto.createHmac('md5', publicKey) let params = data if (typeof data === 'object') {

2024-05-10 20:39:25 942

原创 PasswordEncoder详解

PasswordEncoder是一个密码解析器Spring Security封装了如bcrypt, PBKDF2, scrypt, Argon2等主流适应性单向加密方法( adaptive one-way functions),用以进行密码存储和校验。

2024-05-10 11:46:29 641 1

原创 list转成tree返回前端

到处之前excel导入的数据,参照之前写的网址。耻辱,现在不会用他们封装的方法。就贴一个control层。

2024-05-09 20:10:49 298

原创 JAVA POI 把execl树形结构转成多叉树结构返回JSON字符串给前端

好文章原文复制(我只是传播者),直接去看原文(我至今还不会使用,写死的实现了)

2024-05-09 20:01:52 219

原创 poi低版本导入excel表头

参考引入低版本的poi不和原来项目高版本冲突定义两个实体类HeaderCell和HeaderRegionpackage com.njry.domain.vo;import lombok.Data;/** * @description 标题的单元格属性 * @author 大佬 * @date 2015-10-16 */@Datapublic class HeaderCell { private int rowIndex; //

2024-05-09 19:27:14 452

原创 最佳解决Maven同一依赖多版本共存问题,重复依赖(同一个jar包,多个版本)-maven-shade-plugin

如果配置了maven_home 和java_home可以任意打开cmd执行(我的是在apache-maven的bin下执行的)-Dfile=D:\mavenrepository/maven-shade.jar 是指定重新生成的jar(放的位置)找到这个文件看看是不是在自己项目的本地仓储中(我的就不一致,手动移动到本地仓储)参照原文链接生成的文件(下面是我放的位置)然后就可以在项目pom中引入,例如我的。执行指令后看log最后生成的位置。

2024-05-09 09:15:41 437

原创 项目前端字典

重点看这个数据字典组件(Dict文件下有index.js 和 Dict.js)原因就是在main.js中。index.js文件。

2024-05-06 19:20:49 177

原创 row_number 实际基本应用

之前错误的是根据username修改,发现之前所有锁记录都修改了,我们只需要修改当前锁时间。项目用户登录锁可以锁多次,只想修改超过当前时间的锁截止时间。先使用row_number看看效果。当前表数据(存在相同用户锁)开始使用row_number。最终修改最新一条锁的指定时间。

2024-05-06 13:53:30 288

原创 Row number 函数用法

综上所述,这段代码的用途是在每个由username定义的分区中,为每行分配一个唯一的序列号,而且这个序列号是按照lock_date_end进行排序的。如果你有一个包含多个username值的表,这个查询将返回每个username值对应的行的序列号,且每个username内部的行是按照lock_date_end排序的。需要注意的是,这里的排序不会影响ROW_NUMBER()分配的序列号,它仅仅是分区内部行的顺序。ROW_NUMBER(): 这是一个窗口函数,用于分配一个唯一的序列号给每个窗口内的行。

2024-05-06 10:25:28 292

原创 orcale使用递归(测试)

在看基本例子时候我就迷糊了让我们解释一下这个查询:START WITH parent_id = :your_parent_id:这个子句指定了起始节点的条件。:your_parent_id 是你要查询的起始节点的值。CONNECT BY PRIOR child_id = parent_id:这个子句建立了父子节点之间的连接关系。它告诉数据库如何递归地沿着父子关系遍历数据。在这个例子中,它指定了子节点的 child_id 等于父节点的 parent_id。看完gtp的解释更迷糊了表结构。

2024-04-29 21:28:23 333

原创 springboot在添加时出现重复的列名

看看最终执行的sql。

2024-04-26 14:04:46 887 1

原创 @TableField(fill = FieldFill.INSERT)

TableField 注解表示该字段是数据库字段,支持的属性包括:value、exist、el、condition、update、insertStrategy、updateStrategy、whereStrategy、fill。@TableField(fill = FieldFill.INSERT) 是 MyBatis-Plus 中的注解,用于设置实体类中对应的字段在插入时需要自动填充。为了在插入数据时自动填充这个字段,你需要实现一个字段填充的拦截器MetaObjectHandler。

2024-04-25 21:21:04 543 1

原创 SpringBoot统一参数校验

在日常的开发中参数校验是非常重要的一个环节,严格参数校验会减少很多出bug的概率,增加接口的安全性。也会减少对接时不必要的沟通。比如说:在对接的时候前端动不动就甩个截图过来说接口有问题,你检查了半天发现前端传递的参数有问题。针对以上:今天给大家分享一下SpringBoot如何实现统一参数校验。

2024-04-25 15:49:41 912 1

原创 oracle中的数据类型:varchar2(byte)和varchar2(char)

当数据库字符集为 AL32UTF8 时,一个汉字是一个字符,一个汉字占3个字节,varchar2(2 byte) 一个汉字也不能存,varchar2(2 char) 能存2个汉字。当数据库字符集为 ZHS16GBK时,一个汉字是一个字符,一个汉字占2个字节,varchar2(2 byte) 能存1个汉字,varchar2(2 char) 能存2个汉字。如果该参数的值为 byte ,则 varchar2(2) 等同于 varchar2(2 byte),这是默认情况。

2024-04-25 15:31:04 327 1

原创 java获取类中所有方法

会返回当前类定义的所有方法(包括私有的、静态的、抽象的),但是不会返回接口和父类中定义的方法。

2024-04-25 10:39:46 279 1

原创 Java反射中method.isBridge() 桥接方法

桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法。我们可以通过Method.isBridge()方法来判断一个方法是否是桥接方法。因为泛型是在1.5引入的,为了向前兼容,所以会在编译时去掉泛型(泛型擦除)。那么SuperClass接口中的method方法的参数在虚拟机中只能是Object。这怎么回事,其实虚拟机自动实现了一个方法。这个void method(Object s) 就是桥接方法。

2024-04-25 10:28:22 225 1

原创 用户登录1.请求接口2.登录成功数据处理

在login.vue文件引用加密工具加密前端入参(utils下的rsaEncrypt.js)前端入参(login.vue)登录成功的数据前端入参(store用到的@/utils/auth)登录成功数据处理( token,user,roles,loadMenus)router处理(用token,loadMenus)登录成功后就会跳转(router下面的router.js一开始写死的基本路由)通过有没有token,用户角色是否存在,是不是第一次加载去动态加载菜单和基本写的router融

2024-04-24 11:23:06 338

原创 exists取代内联基本例子

之前是exists理论但是今天写sql突然用到exists。

2024-03-21 08:54:34 140 1

原创 Mysql多对多基本例子

这里再重复一遍:执行人表。

2024-03-20 19:23:23 289 1

原创 JSON_CONTAINS的报错

前端筛选传入label的uuid构成的数组,例如:[“157D55CD26D043DEBE0E2A336A6E588D”,“199B4DA365BD4125ABC43562C281F6C0”],,里面uuid都是32位,一个任务可以有多个标签,后台怕逗号分割存不下多个标签的uuid,所以任务表。我后台mapper.xml代码(where后面只是单单加了labelList筛选处理)后端要在sql中遍历循环 json中判断任务表。的label是否包含这些多选的标签,自己写死数据测试一下(方法好用)

2024-03-19 17:15:13 135

原创 测试@Transactional(rollbackFor = Exception.class)是否有效

再次把controller上面@Transactiona去除再重复上面步骤。放行debug,控制台一堆报错,看不懂。直接去sql验证数据还在不在。在数据库中检验是否有前端写得的任务id。项目里添加事务的controller层。前端写死一个任务id。

2024-03-14 14:12:16 188

原创 Mysql多表联查出现重复

自己太菜,多练。

2024-03-13 14:13:31 463

原创 mysql的EXISTS理论

当子查询返回的结果集较小,且主查询表中的字段和子查询表中的字段相同时,使用 where in 可以提高查询效率;当子查询返回的结果集较大,或者主查询表和子查询表中的字段不一致时,建议使用 exists。使用场景的区别也很明显。在这个查询中,子查询返回了所有与顾客相关联的订单ID,主查询将返回匹配的客户ID和名称。EXISTS的作用是检查子查询返回的结果是否存在,如果存在,返回主查询中指定的列。在SQL中,EXISTS的主要用途是检查子查询是否返回结果,从而帮助我们编写更加高效的查询语句。

2024-03-11 16:21:42 494

原创 left join 后面on的条件筛选关联有必要多个吗

ON条件是生成临时表时使用的条件(仅在关联右表查询时对右表筛选起作用,无论条件是否为真都会返回左表所有记录)WHERE条件是生成临时表后使用的条件(对生成的临时表再次进行条件过滤,此时条件筛选对全表有效,条件不为真就会过滤掉既然始终left jioin返回左表全部值,我多右表条件筛选还有啥用啊left join 后面on的条件筛选关联有必要多个吗。

2024-03-11 14:51:06 219 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除