自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java 导入excel文件数据到数据库

java 导入excel文件数据到数据库今天又偶发想起来,平时工作中除了需要导出数据为excel文件外,有些时候还需要将excel中的数据导入到数据库中。所以今天就来记录一下这个步骤。主要记录的是把文件流转化为集合数据的一个工具类,使用这个工具类可以减轻很多相关转换的代码量。废话不多数老规矩先贴上代码示例:可以看到最为主要的是用到了一个ExcelUtil的工具类做了数据转换,接下来直接贴上工具类代码,其中包含其他操作的代码,有需要的仅选中的就好。仅为记录,不足之处还请指教!

2024-05-20 14:59:33 196

原创 java生成图形验证码

在写项目的时候登录的方式有多种多样,根据需求的不同,有些是用手机号获取验证码登录,有些是需要账号,密码 + 手机验证码登录,还有写是需要账号,密码 + 图形验证码登录,不论怎样搭配大体需要的账号,密码,手机号,验证码。今天就记录下图形验证码的生成。大概设置就是这样子,可以设置字体,复杂度,组合方式等。生成好的验证码我们存在了Redis中方便登录输入时校验输入准确性。可根据自己项目的需要修改。由于我手上的项目登录是需要账号+密码+手机号验证码+图像验证码3重校验所以图形验证码我们使用的是1.6的版本就够了。

2024-05-14 09:41:22 308

原创 java post、get请求第三方https接口

前段时间做项目新加功能由于要对接其它系统,请求系统接口传输数据。写完后发现我写的这个方法和网上现有的例子有点不太一样,可能是因为我做的项目是政务网的原因,但我想正常的即便是互联网的系统请求方式也都是一样的,所以记录一下。如果有不符合的地方请各位看官指教。废话不多说直接上代码;有不足之处还请指教!

2024-03-22 09:07:06 731

原创 入参数据批量数据校验

在业务处理中一般入参是单条数据,这样数据校验比较容易,直接用注解标注对应的校验用注解就可以了,但是这种方法对于集合数据的校验不适用。但是业务中也有可能是传入的批量数据,还要校验每个字段值是否合规。我搜过其他猿友写的批量校验的逻辑,感觉很繁琐,所以我记录一下我的我感觉比较简便的方法,代码量减少,还能满足校验要求。废话不多说,看代码。具体使用方法就很简单了,直接按照单个校验的方式添加注解,修改一下接收的集合就可以了。这样,批量校验的功能就可以了并且可以被复用。

2024-02-05 08:55:38 402

原创 java纯代码导出文件为压缩包

今天做需求突然看到之前产品提的需求,导出多个文件为压缩包。功能部分早就已经完成了,想到还没有过类似的记录,今天就记录下来吧,是记录也是学历,如果有不对的地方还请多多指教。以下贴出的代码是下载压缩包的源代码,我的文件资源是存储在服务器根目录下,表中记录的文件存储的绝对路径,通过路径反查获取资源下载,看官可根据自己项目的情况判断是否适用你当下的需求场景。用java包里面的方法导出压缩包。如有不足,请多多指教!

2024-02-04 17:40:32 542

原创 java 纯代码导出pdf合并单元格

后有一部分猿友叫我提供一下源码,实际上我的源码已经贴在帖子上了,都是同样的步骤,只是加多一点设置就可以了。该用到的步骤我已经标注的很详细了,即是我自己的学习记录希望能帮到各位猿友。如有不足之处还望多多指教!以下为导出PDF头部设置,具体在另外一个帖子中有。

2023-12-28 11:48:52 872

原创 java easyPOI导出一对多数据,设置边框,字体,字体大小

今天碰到导出excel是一对多结构的,以往导出的数据都是一条一条的,所以采用的是比较方便简单的方法easyExcel,今天猛然碰到一对多导出虽然用easyExcel也可以,但是相对比较麻烦,没有easyPOI快捷,之前有自己写过导出excel一个表格一个表格画,但是太麻烦。今天正好需求不急,就慢慢研究用easypoi导出,写出通用方法,以后遇到类似的就好办多了,直接调方法。好了,完整的过程就是这样了,直接掉接口导出就可以了。如有不足之处还请多多指导!需求总是千奇百怪,解决的方式也可以是多种多样。

2023-12-05 18:46:26 1969

原创 idea集成测试插件替代postman

这就是完整的使用过程,它还可以把你每次使用的请求接口都保存下来,以方便查找,这里不是主要的使用步骤我就不一一介绍了,有需要的老铁,下载后可以自己慢慢探索。大致就长这个样子啦,在工作区最右边,不用可以隐藏起来,用的时候打开就好了,不用频繁手动输入接口地址,参数,只需要鼠标点击就好了。输入地址就算了,还要设置一系列参数,token,请求参数等,有没有感觉很麻烦呢?打开postman,输入接口地址,有没有感觉很麻烦呢?如图就是这个插件,直接搜索,安装,接下来是配置。页面切换进行测试,有没有感觉很麻烦呢?

2023-11-01 18:01:07 1269

原创 java导出pdf(纯代码实现)

在项目开发中,产品的需求越来越奇葩啦,开始文件下载都是下载为excel的,做着做着需求竟然变了,要求能导出pdf。导出pdf倒也不是特别大的问题关键就是麻烦。方法二:利用HTML页面导出,奈何自己不会写HTML,前端忙没时间帮忙写。本着求人不如靠己的想法就选择了第三种比较麻烦的方法,自己用table画。方法一:利用模板导出,但是首先编辑模板的工具不好找,现有的国外的工具要收费,所以放弃了这个。方法三:自己用纯代码画格式(可调字体大小,颜色,对复杂没有规则的数据都可以)然后就可以了直接导出pdf。

2023-07-14 18:58:12 16795 25

原创 自定义注解实现数据脱敏,国密加解密(sm4)

其中效率最慢的当属于代码业务代码方式,最优的方式当属于自定义注解的方式,减少代码量,提高工作效率,需要脱敏的字段仅需要加一个注解就可以达到目的。修改一下上面的序列化器,防止需要需要解密的字段值我空的时候报“Null input buffer”的错。1):业务代码脱敏:顾名思义就是拿到数据需要脱敏的那个字段进过一系列的脱敏规则替换成自己想要的格式。然后在需要加密或解密的字段中加入该注解,并注解标注正确的策略方式。2):自定义注解+aop切面的方式去完成字段脱敏的目的。首先先定义一个需要脱敏的策略。

2023-06-18 21:48:10 1369

原创 mybatisPlus代码生成器

代码生成器是个很好用的东西,能节省很多时间,并且编写代码用公共方法比较便捷。此代码生成器为mubatisplus的代码生成器,仅生成controller,server,mapper,xml文件不生成业务代码,仅供参考。

2023-06-13 17:16:21 343

原创 文件上传与文件下载

注:需要注意的是 获取完整文件路径方法中的 uploadFilePath :是文件将要保存在服务器中的位置路径,可以在配置文件中配置好后引用。最后把返回的信息存在在表中使用。在开发中项目难免会遇到文件上传和下载的情况,如果公司有部署文件服务器是再好不过啦,直接调用文件服务器上传和下载的接口,保留返回的文件id即可。但是如果公司没有文件服务器就比较苦逼了,得手写文件上传和下载的接口把文件存储在服务器的某个位置,以便使用。传入的参数为文件上传是保存的文件的id即可。首先controller层。

2023-06-13 16:34:21 122

原创 java用easyexcel导出excel(可自定义导出字段)

以下说明针对有自定义导出字段数据的需求,不用自定义导出字段的可以忽略导出excel的工具类,仅需要工具类中第一个方法的在最后一截导出即可。自定义导出字段由前端传入,需传入字段和字段名,如果不需要自定义导出字段这一步可以省略直接在返回实体中加上对应字段导出的注解即可。headList:为excel的表头字段,不需要自定义导出字段的可以直接在实体类中接入导出字段的注解,然后把实体类替换即可。由于有多个导出,所以吧导出的方法提取出来为一个公共的工具,具体如下,可以直接使用,自行修改参数即可。

2023-03-14 18:46:12 3735 3

原创 idea连接达梦数据库并操作数据

目前项目用到的是达梦的数据库,虽然有数据库可视化界面可以操作数据库,但由于达梦是国产数据库除了自带的界面外很少有第三方界面支持达梦的连接。在idea和数据库间切换有时候也挺麻烦,这个时候就可以直接用idea自带的数据库连接功能连接数据库,直接在idea中操作数据库。6:打开编辑器,可以写SQL语句和数据库可视化操作工具一样。电脑必须安装有达梦数据库(驱动)3:选择达梦数据库驱动,然后应用。2:修改连接数据库名和选择驱动。4:选中新建的数据库。

2023-02-07 16:02:50 1530 2

原创 给定开始时间结束时间补全区间日期并计算时间差

给定开始时间结束时间补全区间日期并计算时间差给定一个开始时间和结束时间计算出两个时间之间的所有日期,并计算两个时间只见相差多长时间直接看代码:思路很简单:给定一个初始时间,判断初始时间是否小于结束时间,如果小于就依次天数加1,并存入集合中,直至开始时间等于结束时间结束循环,返回集合就好。以上内容仅供参考,具体要结合自己业务需要调整。

2022-12-06 18:15:29 246

原创 云服务器购买流程

不管什么服务器了,实际上都是一样的,如果想更靠近企业级开发,个人在学习的时候购买一个服务器去辅助学习个人觉的是很有必要的。现在的服务器中类也有很多阿里云,华为云,腾讯云等等都是可以用的,至于应该选哪一个就看你自己的钱包富不富裕啦,一般选阿里云的会比较多一天,可以免费试用一个月(其他的不知道)且活动期间价格也是比较香的。等你服务器被攻击植入挖矿脚本,管理员给你打电话让你整改,不然就给你停服的时候你就知道了。确定了价格直接点击购买,购买付款过程就不展示了,一看就明白没有特殊的选项,就是让你掏钱就完事了。

2022-12-02 11:00:37 1082

原创 虚拟机安装

虚拟机安装

2022-11-29 21:51:36 2626

原创 批量插入数据SQL写法,批量处理数据

减少与数据库的交互,把之前的一条一条查的代码优化为一次性全部查出,然后在批量处理数据。如果数据量太大(超2万)直接用SQL去批量处理有可能会报错,那是因为数据库单次处理数据的能力有限所以可以分批次处理。今天在进行功能优化中遇到了碰到了一个功能,要处理10万条数据。在最开始开发时没有考虑那么多直接以单条数据来处理没有考虑到大批量数据的情况,导致功能不符合预期。**1:**批量插入数据的SQL ,xml文件编写。查出的几万条数据分批次处批量插入。

2022-10-24 18:20:55 7296

原创 达梦数据库导出数据表结构为excel或html或文本(写文档用)

因为是国产数据库所以他和mysql,oracle,sqlServer的工具是不能互通共享的只能用他本身携带的工具来进行数据迁移,表迁移,数据导入导出等一系列操作。项目中用的是国产达梦数据库,项目做了一期后应该是要数据库设计文档。其中就有一个需要表结构(字段,字段精度,说明。导出的内容和数据库结果集一样。学习笔记,仅供参考!有更好的方法的,欢迎指导。经过查阅文档和资料终于找到了方法。

2022-08-25 15:31:41 4967 5

原创 DM(达梦)数据库和其他数据库(mysql,sqlserver...)表互相迁移

因为达梦是国产数据库,管理界面和其他数据库都不能通用,其他数据库可以用navicat一个管理工具都可以连接,而达梦只能用自己提供的管理工具。在做项目的时候遇到两个项目用的表和数据都是同样的但是数据库不一样这个时候为了节省时间可以直接库与库质检互相导表和数据增加效率。6:点击下一步后会出来源数据库里面的所有库,需选择你要转的表所在的模式,下方选择驱动和字符集。废话不多说,下面就介绍DM(达梦)和其他库互相倒表,数据,其他数据库互相倒表,数据的方法。8:然后点击完成就可以开始迁移数据库表和数据了。...

2022-08-18 11:15:19 5314 13

原创 一套代码中的定时任务被多个机器运行,数据容易变多或变大的解决办法。分布式锁,代码执行时间

开发中遇到了这样的一个场景,同一套代码在多台机器运行。奇葩的是数据库表都是同一个。但是在运行过程中发现,当多台机器同时运行同一套代码对同一个数据源操作同一个表的时候会出现跑出来的数据比正式数据要打,或者要多,这个时候就想到了要用锁。加入分布式锁后不论几台机器几个线程同时运行,最后只能运行最先抢到线程拿到锁的那个任务。并不能解决问题,这时就要用到分布式锁了。可以用redis的分布式锁。但是单纯的锁只能锁住仅在一台机器运行时并发请求线程的问题(步骤,代码如下,不多解释。......

2022-07-26 11:42:04 1216

原创 【达梦】SQL相同属性的不同值转换为一个字符串

【达梦】SQL相同属性的不同值转换为一个字符串

2022-07-19 16:56:42 1315

原创 电话号码,身份证号,日期校验正则表达式

电话号码,身份证号,日期校验正则表达式

2022-07-04 09:23:59 900

原创 SQL达梦数据库复制表数据和表结构[当前模式下]

sql达梦数据库复制表数据和表结构

2022-06-29 09:18:31 3403

原创 SQL 达梦数据库父子表(树表)查询所有子集,父级

SQL 达梦数据库父子表(树表)查询所有子集,父级先看表图中 dic_id 为子健 parent_dic_id 为父建 即 dic_ic = parent_dic_id现在要查出 父id为1 的所有子集sql 对应为 :下面展示一些 内联代码片。select * from T_SYS_DIC start with dic_id = '1000076' CONNECT BY PRIOR dic_id = parent_dic_id对应结果:可以看出所有数据均为父 id为 1000

2022-05-28 20:09:57 2940

原创 MySQL表被锁后,解锁的命令

MySQL表被锁后,解锁的命令直接三步骤 show OPEN TABLES where In_use > 0 show processlist kill 956802首先命令一:查看被锁的表的执行sql命令二:展示所有正在执行的命令进程然后用三命令杀死阻塞的进程id。一般Command 会显示进程的执行状态,info是执行的sql。...

2022-04-26 11:18:24 3431

原创 mysql获取近7天,7周,7月,7年日期,根据当前时间获取近7天,7周,7月,7年日期,获取近几月每月的最后一天的日期

mysql获取近7天,7周,7月,7年日期,更具当前时间获取近7天,7周,7月,7年日期废话不多说,直接看图1:根据表中最大时间获取近7天日期SELECT DATE_FORMAT(creattime, "%Y-%m-%d") b FROM t_stock_realtime_inventory WHERE DATE_FORMAT(creattime, "%Y-%m-%d") > ( SELECT DATE_FORMAT(DATE_SU

2022-04-25 18:44:19 8270

原创 【面试题】之给定一个整数数组和一个目标值,在该数组中找出和为目标值的那两个整数并返回下标

面试题之给定一个整数数组和一个目标值,在该数组中找出和为目标值的那两个整数并返回下标题目如下:此题解题思路共有两种直接看方法:方法一(简单型,直接for循环嵌套就可以搞定):方法二:解题思路:先把已知集合遍历转化为map,key为数组值,value为值数组值对应的下标,然后判断用目标值减去遍历的集合值是否包含在map中,返回结果就可以了。具体看图:最后结果一模一样,推荐第二种写法,因为在数组元素较多的情况下如果使用方法一嵌套循环会大量消耗性能,方法二更佳。...

2022-02-07 15:19:54 2662

原创 达梦数据库、表字段创建索引或删除索引,增加表字段、修改字段类型或长度、修改注释,大字段类型修改为varchar 类型,修改表名及注释sql语句

达梦数据库、表字段创建索引,增加表字段、修改注释sql语句注:达梦数据库在操作数据库的时候需要带上模式名、即 模式名+表名1:字段创建索引CREATE INDEX "idx_plan_year" ON "INDUSTRIAL_SCREEN"."BIZ_PROJECT_FINISHED"("PLAN_YEAR" ASC) STORAGE(ON "MAIN", CLUSTERBTR) ;CREATE INDEX "idx_project_name" ON "INDUSTRIAL_SCREEN"."

2021-12-02 16:45:10 36986 2

原创 达梦数据库表被锁住后解锁方法

达梦数据库表被锁住后解锁方法:第一步:首先查看当前数据库中锁的状态执行sql:SELECT * FROM v$lock此时可以看到 事务2399被阻塞了,阻塞他的事务是2393,同样我们也可以通过 VTRXWAIT视图查看谁阻塞谁。执行sql:SELECT∗FROMVTRXWAIT 视图查看谁阻塞谁。执行sql:SELECT * FROM VTRXWAIT视图查看谁阻塞谁。执行sql:SELECT∗FROMVTRXWAIT;得出同样的结果,ID 为 2399 的事务正在等待 ID 为 2

2021-11-01 11:01:16 12255

原创 streaml流判断两个对象集合中元素是否相等并把一个数组中的元素添加到另一个集合中、根据某个元素排序

stream 流判断两个对象集合中元素是否相等并把一个数组中的元素添加到另一个集合中个人经验: 如果仅判断是否相等的话可以直接用双层for循环判断,但这种写法虽然可以实现功能,但是他的缺点就是,如果在数据量很大的情况下,性能不是那么好,数据处理不合理。不推荐这种写法。还有第二种方法:就是用stream流处理,效率要稍微好一点。既可以判断元素是否相等,也可以处理两个对象集合中元素的数据。废话不多说,直接看实例://集合一:List<ProjectFinishedSubjectStatistic

2021-09-03 11:39:20 4281

原创 sql(达梦数据库)获取本周所有数据(周一至周日,周一至所选当前时间所有数据)、获取上周所有数据,获取近一段时间内的日期,和本月的日期

sql(达梦数据库)获取本周所有数据(周一至周日,周一至所选当前时间所有数据)、获取上周所有数据废话不多说,直接上图:图一: 本周所有数据SELECT INDUSTRY_NAME industryName, SUM(COUNT_NUM) heatValue FROM GFACE_INDUSTRY_DAILY_STAT WHERE SRC_TYPE = #{type} AND datediff(WEEK,#{year},DATE-1) = 0 GROUP B

2021-08-19 20:40:01 6647

原创 Linux系统文件操作权限设置

Linux系统文件操作权限设置打开linux ll 或ls 查看文件时文件最前面有一排符号:即为文件的操作权限drwxrwxrwx:一般分为4部分d: 文件类型第一组rwx: 表示文件所有者对该文件所拥有的权限第二组rwx: 表示文件所属组对该文件所拥有的权限第三组rwx: 表示其他用户对该文件所拥有的权限下面表格详细的表述了各个部分意义读(read),写(write),执行r(recute)简写即为(r,w,x),亦可用数字来(4,2,1)表示举例:如果某文件权限为7则代表可读(4

2021-08-14 23:45:25 277 1

原创 服务器部署jar包运行并打印日志设置步骤(针对新项目)

服务器部署jar包运行并打印日志设置步骤(新项目)1: 前期准备工作、项目配置文件先配置好(1): 配置生产环境的 主要指向 Dev测试环境的,或者公司有配置测试环境或生产环境都在这里指定(2):项目主要配置文件 在里面配置日志打印级别(4)level 日志级别 ,path:日志文件打印位置,file:日志存储文件位置 ,config:日志设置配置文件指向(3),(3)具体设置看图具体不多 阐述<?xml version="1.0" encoding="UTF-8"?><!--

2021-08-14 11:19:12 4718

原创 一个sql查询多个结果、DISTINCT 按条件去重计算总数、CONVERT,保留几位小数

一个sql查询多个结果、按条件去重计算总数、保留几位小数(学习笔记仅供参考)示例:一条sql查询多个结果SELECT (SELECT COUNT(ITEM_NAME) FROM BIZ_PROJECT_FINISHED WHERE PLAN_YEAR = #{year}) projectFinishedNameTotal , (SELECT CONVERT(DECIMAL(18,0),(SUM(FUNDING_PLAN_SUM_TOTAL)/10000)) FROM BIZ_PROJ

2021-08-11 16:00:30 1006

原创 Error running ‘ xxx[clean]‘: Maven 3.3.1+ requires JDK 1.7+. Please set appropriate JDK

Error running ‘changgou-parent [clean]’: Maven 3.3.1+ requires JDK 1.7+. Please set appropriate JDK前几天java推送了新的版本,并且打开idea后提示更新java,由于项尝试一下新版本的java所以就手欠的点了同意,在安装完后我还特意选了保留老版本,结果左后的安装结果就是新版本不知道安装在哪儿,旧版本也给删掉了。后来我又重新装了一个jkd 在idea中配置配置能用。后来突然想把自己写的项目放在服务器上跑一

2021-08-08 19:50:52 5787

原创 如何在idea中将自己的项目添加到Git上并且推送到远程仓库

如何在idea中将自己的项目添加到Git上并且推送到远程仓库(学习笔记仅供参考)1.首先我们要在idea中查看git的默认安装路径选择File>>Settings>>搜索git2.这里idea会自动帮你找到你默认安装git的位置可以点击Test 查看是否配置正确3.如果在安装git中修改了安装位置 这边需要手动修改接下来我们需要将项目交给git管理点击VCS>>Import into Version Control>>找到Create Gi

2021-07-26 00:08:55 6706 3

原创 Swagger接口文档配置

/** * swagger配置 */@EnableSwagger2@Configurationpublic class Swagger2Config { @Bean public Docket createReviewRestApi() { ArrayList<Parameter> params = Lists.newArrayList(); return new Docket(DocumentationType.SWAGGER_2).

2021-07-12 17:56:56 164

原创 公共返回工具Result<返回实体类>

公共返回工具Result<返回实体类>import io.swagger.annotations.ApiModelProperty;public class Result<T> { @ApiModelProperty( value = "响应码, 0成功,其它失败", position = 101, example = "0" ) private String code; @ApiModelPr

2021-07-10 19:59:21 1472

原创 stream流根据对象中的某个元素去重、把相同条件的某个不同字段值拼接为一个字符并按规定的符号隔开

stream流根据对象中的某个元素去重学习笔记仅供参考创建一个类@ApiModel@Datapublic class TopicList2RspDTO { /** * 项目名称 */ @ApiModelProperty(value = "名称") private String projectName; @ApiModelProperty(value = "项目详情") private String age;}去重public

2021-06-29 16:23:54 2316

空空如也

空空如也

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

TA关注的人

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