自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 springboot导出excel 多个sheet导出

3、导出excel工具类。

2023-05-22 15:56:27 464

原创 mysql执行计划Explain详解

mysql执行计划Explain

2022-09-22 18:58:55 724

原创 使用mybatis-generator:generate生成代码

一、MyBatis 生成器介绍MyBatis Generator (MBG) 是 MyBatis MyBatis的代码生成器。它将为所有版本的 MyBatis 生成代码。它将内省一个数据库表(或多个表)并生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG 试图对大量简单的 CRUD(创建、检索、更新、删除)的数据库操作产生重大影响。您仍然需要为连接查询或存储过程编写 SQL 和对象代码。MBG 生成不同风格和不同语言的代码,这取决于它的配置方式。例如,MBG 可以生成

2021-09-07 17:59:30 1389

原创 SpringBoot实现数据excel导出

本案例将演示基于springboot或者ssm等框架数据导出为excel文件的操作,简单快捷易上手,在实际项目开发中粘贴即可使用。一、准备环境<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version></dependency><depen

2021-06-30 17:08:19 528

原创 Redis的持久化

一、概述Redis提供了不同的持久性选项,即为RDB和AOF两种持久化方式。RDB持久性按指定的时间间隔执行数据集的时间点快照。AOF持久性会记录服务器接收的每个写入操作,这些操作将在服务器启动时再次播放,以重建原始数据集。使用与Redis协议本身相同的格式记录命令,并且仅采用追加方式。可以在同一实例中同时合并AOF和RDB。请注意,在这种情况下,Redis重新启动时,AOF文件将用于重建原始数据集,因为它可以保证是最完整的。二、Redis持久化–RDB1、RDB的保存文件和保存路径在redi

2020-07-09 16:38:26 4470

原创 设计模式之代理模式

一、静态代理这种模式的关键是真正的目标对象和代理对象得实现同一个接口,同时代理对象中要注入一个目标对象得引用,调用代理对象之后,代理对象内部调用目标对象。相关代码如下:1、定义一个接口 代理对象和目标对象(被代理对象)都要实现这同一个接口interface Service{ void m1(); void m2(); void m3();}2、被代理对象实现Service接口//目标对象 被代理对象class Target implements Service{

2020-07-08 15:16:05 1303

原创 设计模式之单例模式

一、饿汉式//饿汉式class Demo1{ //1-私有化构造方法 private Demo1(){ System.out.println("创建了一个Demo1对象"); } //2-提供唯一实例对象 private static final Demo1 instance = new Demo1(); public static Demo1 getInstance(){ return instance; }}

2020-07-02 18:41:29 1268

原创 MySQL 分支和循环结构

一、if函数在mysql中if()函数的用法类似于java中的三目表达式,其用处也比较多,具体语法如下:IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。注意:if函数可以用在任何位置。例如:select * ,if(role_id=1,‘管理员’,‘普通用户’) as role from user_p;当role_id为1时,返回管理员,role_id非1返回普通用户。二、case语句1、情景一(

2020-06-22 20:22:52 1428

原创 mysql limit和offset用法

整张表的信息如图:1、当 limit后面跟一个参数的时候,这个参数表示要取的数据的数量如下图取出了前三条数据2、当limit后面跟两个参数的时候,第一个数表示要跳过的数量,后一位表示要取的数量,如 select * from user_p limit 2,3;表示跳过前两个,然后取三条,如下图所示:3、当 limit和offset组合使用的时候,limit后面只能有一个参数,表示要取的的数量,offset表示要跳过的数量 ,例如select * from user_p limit 4 offs

2020-06-22 17:47:15 1454

原创 CAS及其原理

1、CAS简介CAS的全称为Compare-And-Swap ,它是一条CPU并发原语,它的功能是判断内存某个位置的值是否为预期值,如果是则更新为新的值,这个过程是原子的.CAS并发原语体现在Java语言中就是sun.miscUnSaffe类中的各个方法.调用UnSafe类中的CAS方法,JVM会帮我实现CAS汇编指令.这是一种完全依赖于硬件功能,通过它实现了原子操作,也就是说CAS是一条原子...

2020-04-06 20:52:47 2113

原创 Java8之Stream

一、Stream概述Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API对集合进行操作,就类似于使用SQL执行的数据库查询。也可以使用Stream API来并行执行操作。简而言之,Stream API提供了一种高效且易于使用的处理数据方式。Stream 作为 java8 的新特性,基于 lamb...

2020-04-01 15:35:49 1375 1

原创 并发编程之volatile关键字

volatile 是并发编程的重要组成部分,作为java中的关键词之一,volatile 有两大特性:保证内存的可见性和禁止指令重排序。那什么是可见性和指令重排呢?接下来我们一起来看。一、内存可见性要了解内存可见性先要从 Java 内存模型(JMM)说起,在 Java 中所有的共享变量都在主内存中,每个线程都有自己的工作内存,为了提高线程的运行速度,每个线程的工作内存都会把主内存中的共享...

2020-04-01 13:46:02 1372 2

原创 springboot项目使用jar包启动

一、简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。相比较与传统的ssm框架(spring、spri...

2020-03-16 11:00:43 2121

原创 IDEA添加自定义快捷键

1、File > Setting >Editor>Live Templates2,点击+号新建一个组,在组内设置模板 ,如图新建组名叫Java3、在Java组内添加代码模板,这样就完成了在Idea中添加自定义4、演示效果...

2020-03-04 11:16:08 893

原创 Git之本地库上传到远程库GitHub上

1、点击new 新建一个GitHub仓库2、如图填写仓库名字,仓库描述,选择仓库类型点击创建3、这样就在GitHub上创建了一个仓库,如图4、点击复制仓库URL5、新建文件夹Commit to Git Hub 进入文件夹使用命令: git clone https://github.com/xxxxxx/demo.git(上一步复制的url)6、把要上传的文件复制到demo...

2020-03-03 18:22:22 3875

原创 lombok的@Data注解set get报错解决方法

@Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法maven依赖坐标: <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> ...

2020-03-02 15:28:58 2921

原创 nginx负载均衡配置

一、什么是nginxNginx (engine x) 是一个高性能的HTTP和反向代理web服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。Nginx因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)...

2020-02-29 15:24:53 1353

原创 Eureka的集群配置

Eureka注册中心的建立和服务注册可以参考博客:[Eureka微服务注册中心建立和服务注册],本篇博客主要介绍eureka的集群配置和使用。一、Eureka集群的原理和必要性如果单机版本Eureka服务端宕机,会导致所有服务都无法获取使用,为了保证高可用性,我们需要搭建Eureka集群。如下图是来自eureka的官方架构图,这是基于集群配置的eureka处于不同节点的eureka通过Repl...

2020-02-27 20:56:34 1805

原创 Eureka微服务注册中心建立和服务注册

一、Eureka是什么Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,Netflix在设计Eureka时遵守AP原则。CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一...

2020-02-27 14:58:31 1469

原创 ArrayList源码分析

一、构造函数1.无参构造当调用无参构造的时候,默认返回一个空数组,从这里可以看出ArrayList集合的底层是数据。public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } /** * Shared empty array instance used for...

2019-11-14 19:50:44 1263

原创 java的system.arraycopy()方法

System类中提供了一个native静态方法arraycopy(),这个方法可以用来实现高效率的数组之间的复制,System.java中的arraycopy方法 public static native void arraycopy(Object src, int srcPos, Object dest...

2019-11-06 19:30:21 1721

原创 ECharts动态展示数据

ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。1、echarts官网地址 上面有很多实例,也可以在线定制你需要的模板,非常方便https:/...

2019-11-05 11:35:21 3430

原创 mysql数据库的迁移与备份

一、mysql数据库的迁移1.背景:在实际开发中,我们经常需要把测试服务器数据库huo本地二、数据库的备份

2019-11-01 21:25:29 3009

原创 实际项目中redis缓存的使用

最近做项目使用redis解决了项目中的问题,深切的体会到redis的实用性、高效性。问题描述:客户反馈调用接口返回太慢,需要优化 经过代码排查,发现有两个原因造成接口返回数据速度慢问题一、sql语句太复杂 看下图 这么复杂的sql查询四五秒实属正常,一般人很快就会联想到优化sql,但考虑到SQL语句的复杂程度,尽量避免改sql,否则会带来不必要的麻烦。问题二、业务逻辑中对一二级分...

2019-10-31 20:51:12 3944

HttpClientUtil.java

HttpClientUtil请求第三方接口,可以直接使用,post请求方式、get请求方式都有,直接粘贴复制就ok

2019-11-14

空空如也

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

TA关注的人

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