自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (2)
  • 收藏
  • 关注

原创 easyExcel合并单元格导出

*** 自定义合并策略 该类继承了AbstractMergeStrategy抽象合并策略,需要重写merge()方法**//*** 分组,每几行合并一次*//*** 目标合并列index*//*** 需要开始合并单元格的首行index*//*** @param exportDataList exportDataList为待合并目标列的值* @param targetColumnIndex 需要合并的列*/@Override。

2023-09-05 16:39:34 1842

原创 elasticsearch快速应用于SpringBoot

elasticsearch快速应用于SpringBoot

2023-09-04 11:40:40 645

原创 Mysql存储函数和过程

drop procedure if exists proc1;CREATE PROCEDURE proc1()BEGINdeclare my_id varchar(255); DECLARE my_desc varchar(255);DECLARE done INT DEFAULT FALSE; DECLARE My_Cursor CURSOR FOR (select id from test); -- 定义游标并输入结果集-- 当使用MySQL游标时,还必须声明一个NOT FOUN.

2022-01-04 17:26:16 616

原创 Oracle数据库PL/SQL块-存储函数和过程

PL/SQL块PL/SQL程序由三个块组成,即声明部分、执行部分、异常处理部分结构如下:declare​ /*声明部分,在此声明变量,类型及游标*/begin​ /*执行部分,过程及sql语句,程序主要部分*/exception​ /*执行异常部分,错误处理*/end;变量赋值variable :=expression字符连接<字符串>||<字符串>注意:空值加数字仍是空值可转换类型赋值char转number

2022-01-04 15:19:20 363

原创 maven项目-多环境配置

一、SpringBoot 多环境配置对于一个项目来讲基本都 4 有个环境dev,test,pre,prod,对于 SpringBoot 项目多建立几个配置文件就可以了。然后启动的时候可以通过配置spring.profiles.active来选择启动的环境。java -jar BasicProject.jar --spring.profiles.active=prod二、Maven 多环境配置假如想在打包的时候动态指定环境,这个时候就需要借助 Maven 的 xml 来实现。1.配.

2021-12-23 10:16:29 769

原创 SpringBoot使用Hikari构建数据库操作工具

用于程序需要根据配置不同操作不同数据库的场景。技术使用SpringBoot自带数据库连接线程池框架Hikari

2021-12-17 15:10:36 2453

原创 Java使用ScriptEngineManager调用js脚本

import org.springframework.core.io.ClassPathResource;import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import java.io.*;/** * @author reshui * @version 1.0 * @date 2021/12/10 */public clas..

2021-12-10 11:09:29 1927

原创 MVCC详细解说

转载个人学习

2021-11-19 16:21:04 179

原创 微服务-下单退单流程

主要使用的技术1.SpringCloud2.RocketMq数据库建表主要的表有 商品表、商品流水表、订单表(大致的关系,主要是为了方便模拟,所以简化了表之间关系与字段)DROP TABLE IF EXISTS `goods`;CREATE TABLE `goods` ( `goods_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商品唯一标识',

2021-09-21 13:23:08 681

原创 Java调用系统指令

public class ExecTask {//// public static void main(String[] args) {// exec();// } public static void exec(String runCmd,String param1,String param2){ if(runCmd==null){ log.error("run-cmd指令为空"); return;.

2021-09-18 16:11:25 731

原创 MyBatis-Plus 的代码生成器

AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率第一步-导包 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis

2021-08-28 17:12:41 266

原创 步坦协同(前后端协同开发)之前端总结

后端最常用的####本人是专注于后端开发的开发人员,所以对于前端熟练度较为一般。基本知道前端怎么处理,毕竟编程语言都是相近趋同的。一、请求发起情景一Ajax-JSON请求参数实体@Data@EqualsAndHashCode(callSuper = true)@Accessors(chain = true)@ApiModel(value="ObjectVO 对象")public class ObjectVO implements Serializable { ..

2021-08-27 23:35:05 326

原创 Oracle与MySQL-Mybatis批量插入踩坑

平常用mysql比较多,oracle少点。之前个人觉得mysql 和 oracle 很多语法层面的东西很相似,但是还是有一些细微差别,比如一些函数上的差异。mysql批量插入 <insert id="batchUserRole"> insert into sys_user_role(user_id, role_id) values <foreach item="item" index="index" collection="list" separator=",">

2021-08-27 14:44:55 210

原创 MySQL 过滤掉重复数据

问题:由于bug存在,导致数据库存在重复数据的问题,需要去除多余重复数据,仅保留一条有效数据1.建立测试环境DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) COLLATE utf8_bin DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id

2021-08-11 15:29:54 507

原创 Docker之可视化操作-Portainer

官方文档:https://documentation.portainer.io/Portainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境。而且完全免费,基于容器化的安装方式,安装起来非常的简单方便!安装开启dockerservice docker start#启动dockerservice docker stop#停止dockerservice docker restart#重启docker开机自启动设置...

2021-08-06 09:46:14 533

原创 修改el-table-column type=“expand“展开行触发点-更多按钮触发

默认展开点目标展开点解决代码:html部分: <el-table :row-class-name="tableRowClassName" size="small" :header-cell-style="{background:'#0069cf',color:'#ffffff','text-align':'center'}" :data="tableData" :expand-row-keys="expands" :row-key="getRow

2021-07-13 17:06:10 4305

原创 MySQL和Oracle学习到的一些知识点

1.列转行并且用逗号拼接mysql//mysqlSELECT SYS_ID, group_concat(TBL_ID SEPARATOR ',')FROM md_db_tableGROUP BY SYS_IDA a,b,c,d,e,foracle//oracleSELECT SYS_ID, listagg (TBL_ID, ',') within GROUP (ORDER BY TBL_ID)FROM md_db_tableGROUP BY SYS_ID;

2021-07-08 09:47:33 128

原创 Java实现文件分割与合并

Java实现文件分割与合并我们在上传一些文件时,由于文件过大,单一线程进行上传过于耗时。我们需要对文件进行分割,将大文件分割成若干个文件进行上传,再有文件系统终端进行合并。简单模拟实现一下吧!主要使用到的类RandomAccessFile它可以灵活读写文件,类似指针操作。具体实现逻辑夹杂在代码内package com.highjet.demo.file;import org.springframework.web.multipart.MultipartFile;i

2021-04-23 17:59:15 1438

原创 图片信息

2021-04-14 16:58:16 85

原创 MVCC多版本并发控制

MVCC是什么?Multi-Version Concurrency Control ,即多版本并发控制;通过记录多个修改的历史版本替代锁,实现事务间的隔离效果,保证非阻塞读,提高性能,而不是一味地锁记录。锁可以解决不可重复度问题,但依旧会阻塞,性能不是最佳。MVCC实现核心表的隐藏列:记录事务id以及上个版本数据地址;TRX_ID 事务ID,每处理一次,则加1 ROLL_PTR 指向undolog中的一个指针 ROW_ID 用于索引 ...

2021-04-05 02:47:32 115

原创 使用Layui构建一个简单点餐页面

遇到个同学做毕设,他实在不会,需要我帮忙写个前端页面,由于个人比较专注于后端开发,所以前端不是特别熟练。第一次做这个花的时间多了点。记录一下吧。1.首先后端的菜品信息数据格式{ "code":0, "msg":"返回消息", "count":15, "data":[ { "id":6, "foodName":"牛排", "price":200, "pi

2021-03-29 18:58:02 1456

原创 MySQL查询-一个星期内的每天记录总数

DATE_SUB(NOW(), INTERVAL 1 DAY)一天前DATE(create_time)格式化时间UNION ALL 合并(不去重)SELECT NOW();2021-03-20 13:49:34select DATE_SUB(NOW(), INTERVAL 1 DAY);2021-03-19 14:17:04 SELECT count(*) AS num, ...

2021-03-20 14:18:19 925 1

原创 微信小程序使用Vant组件uploader完成上传回显

一、限制个数为1:选择图片后先上传,后回显,具有删除功能1.wxml <van-cell title="公司logo" value="请上传公司logo" border="{{ false }}" /> <van-uploader file-list="{{ fileList }}" max-count="1" bind:after-read="afterRead" bind:delete="delete" />2.js //////

2021-01-15 17:26:53 4930 2

原创 微信小程序wx.uploadFile回显删除上传

1.CSS.add_pic { padding: 0 40rpx; background: #fff;}.add_pic view { display: inline-block; margin-top: 20rpx; width: 430rpx; height: 200rpx; line-height: 200rpx; text-align: center; background: url(https://avatar) no-repeat left cen

2021-01-15 17:15:33 624

原创 @JsonIgnore带来的字段忽略问题

@JsonIgnore此注解用于属性或者方法上,常用在属性上,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。我本想忽略返回密码字段,但是连提交json数据,也忽略了提交的密码字段。 /** * 密码 */ @JsonIgnore @NotNull(groups = {SysUser.AddUser.class},message = "用户密码不能为空") @Size(groups = {SysUser.Ad...

2020-12-10 16:50:17 1503

原创 Spring-Validation校验参数

Spring-Validation校验参数全方面使用参数校验工具//被注释的元素,值必须是一个字符串,不能为null,且调用trim()后,长度必须大于0@NotBlank(message="")//被注释的元素,值不能为null,但可以为"空",用于基本数据类型的非空校验上,而且被其标注的字段可以使用@size、@Max、@Min等对字段数值进行大小的控制@NotNull(message="")//被注释的的元素,值不能为null,且长度必须大于0,一般用在集合类上面@...

2020-11-20 00:34:33 1679

原创 实现读写分离SpringBoot+MyBatis+Druid

实现读写分离SpringBoot+MyBatis+Druid1.读写分离概念理解读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序连接到中间件,中间件帮我们做SQL分离;第二种是应用程序自己去做分离。这里我们选择程序自己来做,主要是利用Spring提供的路由数据源,以及AOP。然而,应用程序层面去做读写分离最大的弱点

2020-11-16 03:13:48 1774

原创 API接口-假定时间内限制访问次数-限频率

API接口-假定时间内限制访问次数-限频率在实际项目中,往往需要对一些公开的接口进行限制在一定时间内的访问次数,避免他人的恶意攻击占用系统资源。方案:设置拦截器,每次访问记录ip地址+访问URL作为key,使用redis按key查询是否有访问记录。如果未有访问redis记录,redis记录这次访问,如果redis查询到有访问次数,比较系统限制次数是否大于现在访问次数,大于则放行,小于等于则拒绝。(redis存储带过期时间,过期后自动清除) String key = IpU

2020-11-15 18:02:02 3027 1

原创 ip2region离线IP地址定位库,给你的日志AOP加上个地址定位

ip2region离线IP地址定位库,给你的日志AOP加上个地址定位Ip2region是什么?ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nodejs,golang,c#等查询绑定和Binary,B树,内存三种查询算法标准化的数据格式每条ip数据段都固定了格式:_城市Id|国家|区域|省份|城市|ISP_只有中国的数据精确到了城市,其他国家有部分数据只能定位到国

2020-11-14 14:37:10 478

原创 利用AOP做一个完善的日志LogAspect切入以SpringBoot为框架基础

利用AOP做一个完善的日志LogAspect切入以SpringBoot为框架基础日常的记录日志,不会还有人还在每个方法都重复书写log.info log....,还有些更初级的sout 哈哈哈,我们要学会用Spring中的利器,那就是AOP思想,替我们把这些重复的工作做了。AOP思想其实我们接触得很多了,像日志记录,权限控制,事务管理啊,基本都用过,里面运用的核心就是AOP。具体AOP详细的介绍和使用我这里就不赘述了,网上有很多资料。今天我想学做个比较细致些的日志记录方式以SpringBo.

2020-11-13 21:37:53 1069

原创 Spring Boot-多环境配置文件切换

Spring Boot-多环境配置文件切换在代码中新增多个配置文件,文件名可以是application-{profile}.properties,然后在applcation.properties文件中配置激活profile。applcation.properties - 公共配置application-dev.properties - 开发环境配置application-prod.properties - 生产环境配置1、配置文件激活在applcation.properties文件

2020-11-11 23:49:45 174

原创 WebSocket在SpringBoot中的小应用

WebSocket 简介WebSocket 协议是基于 TCP 的一种新的网络协议,它实现了浏览器与服务器全双工(full-duplex)通信—允许服务器主动发送信息给客户端,这样就可以实现从客户端发送消息到服务器,而服务器又可以转发消息到客户端,这样就能够实现客户端之间的交互。对于 WebSocket 的开发,Spring 也提供了良好的支持,目前很多浏览器已经实现了 WebSocket 协议,但是依旧存在着很多浏览器没有实现该协议,为了兼容那些没有实现该协议的浏览器,往往还需要通过 ST

2020-11-10 18:50:58 98

原创 脏读、幻读、不可重复读,傻傻分不清楚

脏读(针对未提交数据)脏读又称无效数据读出(读出了脏数据)。一个事务读取另外一个事务还没有提交的数据叫脏读。例如:事务T1修改了某个表中的一行数据,但是还没有提交,这时候事务T2读取了被事务T1修改后的数据,之后事务T1因为某种原因回滚(Rollback)了,那么事务T2读取的数据就是脏的(无效的)。解决办法:把数据库的事务隔离级别调整到READ_COMMITTED(读提交/不可重复读)不可重复读(针对其他提交前后,读取数据本身的对比)不可重复读是指在同一个事务内,两次相同的查.

2020-11-10 10:44:46 8614 5

原创 为SpringBoot写一个简单的Response返回数据处理

{"data":{"id":"1","name":"jack"},"code":200,"message":"success"}为SpringBoot写一个简单的Response返回数据处理对于每次的数据返回处理,是不是很厌烦,每次都要封装对象,形成统一的返回格式 return ResultVO.success(i);这次通过aop思想统一处理@ControllerAdvice ,这个注解,这是一个增强的 Controller。使用这个 Controller ,可以实现三个方面..

2020-11-09 20:21:30 12953 1

原创 幂等性

在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求那什么是幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何保证其幂等性,通常有以下手段:数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据 token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删除token,下次请求再次判断token 悲观锁或者乐观锁

2020-09-23 09:12:59 189

原创

树一个结点的子树个数称为该结点的 度一棵树的度是指该树种结点的最大度数节点的层数:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;树中结点的最大层数,称为树的高度 或 深度二叉树二叉树第i层上的结点数最多为2^(i-1) ;深度为k的二叉树至多有2^(k)-1个结点====》2^0+2^1+...+2^(k-1)=2^(k)-1;如果深度为k的二叉树有2^(k)-1个结点,则称此二叉树为满二叉树(满二叉树不存在度为1的结点);若一颗二叉树至多只有最下..

2020-08-25 16:19:57 95

原创 Springboot使用RedisTemplate

Spring引入了对Cache的支持Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保证我们缓存的方法对于相同的方法参数要有相同的返回结果。 使用Spring...

2020-08-21 17:42:40 679

原创 try-with-resource替代try-catch-finally,使你的Java编写更优美。

try-with-resource替代try-catch-finally估计一大半人还在使用try-catch-finally关闭资源吗,JDK7就可以引用的try-with-resource。简洁明了实现了java.lang.AutoCloseable接口public class Resource2 implements AutoCloseable{ public void run(){ throw new RuntimeException("run2 fa...

2020-08-14 22:35:28 1332

原创 Java集多种发送方式为一身的邮件发送

Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。DROP TABLE IF EXISTS `email_config`;CREATE TABLE `email_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `host` varchar(255) DEFAULT NULL COMMENT '邮件服务器SMTP地址',.

2020-08-08 10:05:15 571

原创 最普通的---》排序算法

10 大排序算法只有以下 4 种是不稳定的:快(快速排序);些(希尔排序);选(选择排序);堆(堆排序)。快速排序 最差时间复杂度 每次选取的基准都是最大(或最小)的元素,导致每次只划分出了一个分区,需要进行n-1次划分才能结束递归,时间复杂度为O(n^2) 最优时间复杂度 每次选取的基准都是中位数,这样每次都均匀的划分出两个分区,只需要logn次划分就能结束递归,时间复杂度为O(nlogn)

2020-07-14 23:03:32 141

建模报名系统

采用maven和springmvc框架外加数据库操作hibernate持久层注入方式,写的数学建模报名系统。外加从系统导出Excel表

2018-06-18

springmvc+jdbc的报名表

附加功能从数据库下载报名表也就是Excel表。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-06-17

空空如也

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

TA关注的人

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