自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(166)
  • 资源 (3)
  • 收藏
  • 关注

原创 Redis:基础、数据类型和版本区别(持续更新)

Redis:基础、数据结构和版本区别Redis:基础Redis:数据类型String(字符串)List(列表)Hash(哈希)Set(无序集合)ZSet(有序集合sorted set)Redis:版本对比Redis2.0Redis3.0Redis4.0Redis5.0Redis6.0Redis7.0Redis:基础推荐java3y:https://mp.weixin.qq.com/s/SdE6MR9g-v93ZtJPme9e8Q一:Redis的是什么?Redis是一款内存高速缓存数据库。Redis全

2022-03-10 14:31:17 1857

转载 将Bean放入Spring容器中的五种方式(2)

将bean放入Spring容器中有哪些方式?向spring容器中加入bean的几种方式:1、@Configuration + @Bean2、@ComponentScan + @Component3、@Import 配合接口进行导入4、使用FactoryBean。5、实现BeanDefinitionRegistryPostProcessor进行后置处理。1、@Configuration + @Bean这种方式其实,在上一篇文章已经介绍过了,也是我们最常用的一种方式,@Configuration

2022-01-22 10:29:13 296

原创 Mybatis-Plus:只更新部分字段的数据

1、通过UpdateWrapper修改指定的列update 时传入 null 是关键重点语句:updateWrapper.set(“SESSION_KEY”, “abc”); this.mapper.update(null, wrapperUpdate);2、使用场景和案例使用版本:3.0.4UpdateWrapper updateWrapper = new UpdateWrapper();updateWrapper.eq("id", 1);updateWrapper.set("s

2022-01-08 04:15:00 9825 1

原创 获取list集合中某一列字段,得到list,并将list以逗号分隔为字符串

获取list集合中某一列字段,得到list,并将list以逗号分隔为字符串 QueryWrapper<WebUser> wrapper = new QueryWrapper<>(); wrapper.eq("type", 1); wrapper.last(" limit 10"); List<WebUser> members = webUserService.list(wrapper); List<String> orderNoList=membe

2021-11-04 16:22:36 1726

原创 springboot跨域配置与ajax请求测试

一:springboot跨域配置import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import javax.servlet.http.HttpServletRequest;import javax.servle

2021-09-26 22:16:30 245

转载 EasyExcel,让excel导入导出更加简单

EasyExcel,让excel导入导出更加简单1.EasyExcel2.GitHub上的官方说明3.快速开始3.1 maven仓库地址3.2 实现导入excel表格3.3 建立导入对应实体类3.4 Controller代码3.5 运行结果1.EasyExcel在做excel导入导出的时候,发现项目中封装的工具类及其难用,于是去gitHub上找了一些相关的框架,最终选定了EasyExcel。之前早有听闻该框架,但是一直没有去了解,这次借此学习一波,提高以后的工作效率。实际使用中,发现是真的很easy,大

2021-08-02 11:00:08 338

转载 Mybatis-Plus:条件构造器select方法返回指定字段

Mybatis-Plus:条件构造器select方法返回指定字段一:Mybatis-Plus 条件构造器select方法介绍二:实例实例一:查找薪水大于3500 名字里有“小”的 员工 (只显示编号和姓名)实例二:查找薪水大于3500 名字里有“小”的 员工 (排除出生日期和性别)实例三:查询每个部门的平均薪资一:Mybatis-Plus 条件构造器select方法介绍根据业务需求,有时候只需要返回特定的几个数据表字段,我们通过条件构造器的select方法可以指定;还有一种情况,假如数据库字段很多的时

2021-07-29 23:44:33 6229

原创 Mybatis-plus:单表使用关联查询+ResultMap结果映射

Mybatis-plus:单表使用关联查询+ResultMap结果映射一:数据表与实体类二:mapper与mapper.xml三:service四:控制器五:返回结果一:数据表与实体类数据表DROP TABLE IF EXISTS `security_edu_info_type`;CREATE TABLE `security_edu_info_type` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `keyName` char(12) DEFAULT

2021-07-29 22:37:39 2458

转载 完美解决: org.apache.ibatis.binding.BindingException Invalid bound statement (not found)

在springboot整合mybatis/mybatis-plus后,运行项目后;测试多表关联分页查询【单表分页查询没问题】报下面的错误:异常描述: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)原因: springboot整合mybatis/mybatis-plus, 在编译时, 如果不添加此节点mybatis的mapper.xml文件都会被漏掉, 即只会生成mapper对应的class文件

2021-07-23 15:36:11 1336

原创 将List集合的数据取出,放入到对象数组中

一:设置List集合数据List<String> userIds = new ArrayList<>();userIds.add("10010");userIds.add("10011");userIds.add("10012");二:取出List集合的值,放入GroupMember对象数组中GroupMember[] members = new GroupMember[userIds.size()];for(int i=0;i<userIds.size();

2021-07-11 17:30:30 5389

转载 springboot通过AOP和自定义注解实现权限校验

文章地址:https://www.cnblogs.com/liuwenwu9527/p/12113159.html

2021-07-07 00:55:51 208

转载 Redis:缓存雪崩、穿透、击穿概念及解决办法(1)

Redis缓存雪崩、穿透、击穿概念及解决办法1. 缓存雪崩2. 缓存穿透3. 缓存击穿1. 缓存雪崩一:缓存雪崩的概念对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。二:缓存雪崩的事前事中事后的解决方案如下

2021-06-30 12:16:46 263

转载 SpringBoot集成阿里云短信服务发送短信

文章链接:https://blog.csdn.net/weixin_42322648/article/details/106790160

2021-06-29 12:01:30 194

原创 docker安装、卸载和常用命令

Docker可视化管理:Portainer中文版一:docker安装1.1* 查看当前系统的内核版本[root@mxxx/]# uname -r 3.10.0-693.el7.x86_641.2* 卸载旧版本的dockeryum remove docker docker-common docker-selinux docker-engine1.3* 安装所需的软件包yum-utils 提供了 yum-config-manager 实用程序,并且 devicemapper 存储驱动需要

2021-06-29 10:54:25 1795

原创 Java设计模式(面试)

Java设计模式

2021-06-28 08:32:51 145

转载 Spring AOP、拦截器、过滤器的区别

一:区别与概念Filter过滤器:拦截web访问url地址。Interceptor拦截器:拦截以 .action结尾的url,拦截Action的访问。Spring AOP拦截器:只能拦截Spring管理Bean的访问(业务层Service)概念:Spring AOP:Spring AOP,是AOP的一种实现,使用的是代理模式。Filter:Filter(过滤器)是J2EE的规范,Servlet2.3开始引入/实现的是职责链模式。Filter可以用来设置字符集、控制权限、控制转向等等。Filt

2021-06-21 23:48:18 4881 1

转载 MySQL:主键索引与唯一索引的区别

主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。唯一性索引列允许空值,而主键列不允许为空值。主键列在创建时,已经默认为非空值 + 唯一索引了。主键可以被其他表引用为外键,而唯一索引不能。一个表最多只能创建一个主键,但可以创建多个唯一索引。主键和唯一索引都可以有多列。主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。在 RBO 模式下,主键的执行计划优先级要高于唯一索引。 两者可以提高查询的速度。...

2021-06-21 19:17:48 880

原创 架构-分布式:分布式全局ID、分布式事务和数据一致性

分布式全局ID、分布式事务和数据一致性1.分布式全局ID1.1 分库分表引发的id重复问题与解决方案1.2 分布式全局ID - 分布式主键UUID(sharding-jdbc)1.3 分布式全局ID-雪花算法生成全局主键(mycat)1.4 分布式全局ID-MyCat全局id-统一ID序列(本地文件和数据库)2.分布式事务2.1 单体事务2.2 分布式事务与CAP理论3.分布式事务的数据一致性实现3.1 Mycat和Sharding-JDBC的分布式事务3.2 分布式事务补偿机制原理3.3 基于本地消息表实

2021-06-21 10:41:55 697 1

原创 Nginx:高并发的nginx性能优化经验

高并发的nginx性能优化经验1.nginx的配置优化的几项2.关于FastCGI的几个指令3.关于内核参数的优化,在/etc/sysctl.conf文件内1.nginx的配置优化的几项nginx配置文件中对优化比较有作用1、nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数。worker_processes 8;2、为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu。worker_cpu_affinity 00000

2021-06-21 08:39:24 161

原创 Spring IOC面试

Spring IOC1. Spring IOC控制反转(宏观方面-设计理念)2. DI依赖注入【Dependency Injection】3. 传统开发方式与引入Spring IOC容器比较4. spring IOC容器职责5. 对Spring的IoC理解5. 初始化IOC容器的三种配置方式5.1 基于XML配置bean5.2 基于注解配置bean5.3 基于java代码(config)配置bean1. Spring IOC控制反转(宏观方面-设计理念)1、IOC控制反转全称Inverse of Con

2021-06-18 14:47:18 204 2

转载 OOA、OOD、OOP 区别与思想

一:Java中的OO 是什么?OO (Object Oriented)其实是 面向对象。二:那么OOA、OOD、OOP其实表示什么呢?OOA =>Object-Oriented Analysis:面向对象分析 -- 需求分析过程OOD =>Object-Oriented Design:面向对象设计 -- 将各个功能和模块向上级申请和审批过程OOP =>Object-Oriented Programming:面向对象程序设计 -- 项目编码、测试、验收等过程...

2021-06-17 08:20:23 2360

原创 Java线程/多线程-锁-并发

Java线程和多线程1.Java线程1.1 什么是线程1.2 什么是多线程1.3 线程的创建1.4 线程的状态和生命周期1.5 线程调度1.6 同步与死锁2. Java锁1.Java线程1.1 什么是线程1.2 什么是多线程1.3 线程的创建1.4 线程的状态和生命周期1.5 线程调度1.6 同步与死锁2. Java锁...

2021-06-16 14:11:07 306

原创 MySQL面试题

MySQL面试题MySQL的增删改查语句MySQL的增删改查语句

2021-05-26 11:08:05 506 4

原创 Java主流框架面试题

Java主流框架Spring IoCIoC理解IoC理解Spring AOPAOP的理解Spring MVCmvc结构的理解Spring IoCIoC理解IoC理解Spring AOPAOP的理解Spring MVCmvc结构的理解

2021-05-26 09:53:06 665 2

原创 Java-Web基础与数据处理

Java-Web基础与数据处理J2EEServletJSPJSTL与EL表达式Spring IoCIoC理解IoC理解Spring AOPAOP的理解Spring MVCmvc结构的理解J2EEServletJSPJSTL与EL表达式Spring IoCIoC理解IoC理解Spring AOPAOP的理解Spring MVCmvc结构的理解...

2021-05-25 21:01:50 193 2

原创 spring cloud&Alibaba面试题

spring cloud&Alibaba面试题一:微服务个人理解二:什么是服务治理(SOA governance)?三:什么是微服务?四:什么是Spring Cloud&&Alibaba?五:Alibaba的注册中(nacos-client)和配置中心(nacos-server)六:服务间轻量级HTTP通信框架--Feign一:微服务个人理解1、将微服务划分为外部服务和内部服务外部服务:以终端划分的外部服务,如api-admin、api-pc、api-applets、api-a

2021-05-22 09:43:45 11314 1

原创 Java基础面试题

java基础面试题一:面向对象的3个特征是什么?二:Java基础数据类型有哪些?三:Int和Integer有什么区别?四:String、StringBuffer 、StringBuilder 区别?五、Java创建对象有哪几种方式?六、Java中创建线程有哪几种方式?七、Java中创建线程池有哪几种方式?八、sleep()、yield()、join()有什么区别?九、线程的生命周期包含哪几个状态?十、Java中线程安全指的是什么?十一、常用的集合有哪几个?它们有哪几种遍历方式和删除指定?十二、数组(Arra

2021-05-22 08:33:45 199

原创 MySQL索引与优化

https://www.runoob.com/w3cnote/mysql-different-nnodb-myisam.html一:存储引擎:InnoDB和MyISAM的区别1、InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。2、InnoDB适合频繁修改以及涉及到安全性较高的应用,MyISAM适合查询以及插入为主的应用。3、InnoDB支持外键,MyISAM不支持4、InnoD

2021-05-16 11:46:36 123

原创 MyBatis批处理(插入和删除)

一:实体类Goods:package com.imooc.mybatis.entity;import java.util.List;/** * 商品类 */public class Goods { //商品编号 private Integer goodsId; //标题 private String title; //子标题 private String subTitle; //原始价格 private Float or

2021-05-15 23:06:32 236

原创 PageHelper分页插件

一:maven引入PageHelper与jsparser<!--分页pagehelper--><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version></dependency><!--jsqlparser 是

2021-05-15 21:45:21 176

原创 Mybatis-ManyToOne对象关联查询

一:实体关系分析表:班级、学生、学籍档案、课程** 班级(1)与学生(多)外键关联,一对多的关系** 学生(1)与学籍档案(1)外键关联,一对一的关系** 学生(多)与课程(多)是多对多的关系,通过中间表进行关联二:实体类Goods:package com.imooc.mybatis.entity;import java.util.List;/** * 商品类 */public class Goods { //商品编号 private I.

2021-05-15 20:38:30 544

原创 Mybatis一对多对象关联查询

一:实体关系分析表:班级、学生、学籍档案、课程** 班级(1)与学生(多)外键关联,一对多的关系** 学生(1)与学籍档案(1)外键关联,一对一的关系** 学生(多)与课程(多)是多对多的关系,通过中间表进行关联二:实体类Goods:package com.imooc.mybatis.entity;import java.util.List;/** * 商品类 */public class Goods { //商品编号 private I.

2021-05-15 15:19:43 380 1

原创 mybatis的二级缓存

一:mybatis的二级缓存介绍1、一级缓存默认开启,缓存范围SqlSession会话,存储时间是非常端的使用率不高。2、二级缓存手动开启,缓存属于范围Mapper Namespace3、两个缓存的范围图解二:二级缓存的运行规则和开启1、二级缓存开启后默认所有查询操作均使用缓存在mapper/goods.xml中开启:<!--开启二级缓存--><cache eviction="LRU" flushInterval="60000" size="5...

2021-05-15 13:04:33 830

原创 Mybatis动态sql

1、什么是动态SQL动态sql是指根据传入的参数数据动态组织sql的技术。2、goods.xmlmybatis动态sql的两种写法:1.使用 where 1=1;2.使用<where>标签<!--动态sql--><select id="dynamicSQL" parameterType="java.util.Map" resultType="com.imooc.mybatis.entity.Goods"> select * from t_goo.

2021-05-15 11:40:52 213

原创 MyBatis数据插入操作+selectKey与useGeneratedKeys两种方式返回自增id

一:MyBatis数据插入并返回主键id1、Goods类package com.imooc.mybatis.entity;/** * @author lihaisong * @version 1.0 * @date 2021/5/14 17:44 */public class Goods { //商品编号 private Integer goodsId; //标题 private String title; //子标题 private

2021-05-15 00:37:59 422

原创 mybatis多表关联查询+ResultMap结果映射

一:实体类Goods类:package com.imooc.mybatis.entity;/** * @author lihaisong * @version 1.0 * @date 2021/5/14 17:44 */public class Goods { //商品编号 private Integer goodsId; //标题 private String title; //子标题 private String subTitle;

2021-05-14 23:02:52 1522

原创 IDEA快速生成测试用例类和完成单元测试

1、打开需要生成测试用例的类2、选择IDEA的code-->Generate,点击完成后会出现 Generate 菜单,选择菜单的Test会快速生成测试用例3、如何运行测试用例第一种:选择对应的测试用例方法第二种:选中一个测试用例类或者同时选中多个测试用例类第三种:执行项目中所有测试用例类,选中项目名称,右键鼠标选择 "Run All Tests"...

2021-05-14 10:58:09 6350

转载 MySQL索引:聚簇索引和非聚簇索引

参考:https://www.cnblogs.com/crazylqy/p/7615393.html一:MySQL聚簇索引和非聚簇索引1、聚簇索引聚簇索引就是对磁盘上的实际数据重新组织以按照特定的一个或者多个列的值排序的算法特点是存储数据的顺序和索引顺序一致 一般情况下主键会默认生成聚簇索引 且一张表有且只有一个聚簇索引;将数据存储与索引放到了一块,找到索引也就找到了数据。2、非聚簇索引非聚簇索引:数据存储和索引分开放,索引结构的叶子节点指向了数据的对应行,myisam通过 key_

2021-04-28 00:36:54 258

转载 MySQL索引:索引失效的几种情况

一:MySQL索引失效的几种情况1、索引不存储null值更准确的说,单列索引不存储null值,复合索引不存储全为null的值。索引不能存储Null,所以对这列采用is null条件时,因为索引上根本没Null值,不能利用到索引,只能全表扫描。为什么索引列不能存Null值?将索引列值进行建树,其中必然涉及到诸多的比较操作。Null值的特殊性就在于参与的运算大多取值为null。这样的话,null值实际上是不能参与进建索引的过程。也就是说,null值不会像其他取值一样出现在索引树的叶子节点上。2

2021-04-28 00:26:04 898

转载 JDK1.7与1.8的hashmap的区别

参考:https://blog.csdn.net/qq_34820803/article/details/104824664一、 HashmapJDK1.7和JDK1.8有哪些区别?1、头插与尾插:JDK1.7用的是头插法,而JDK1.8及之后使用的都是尾插法,那么他们为什么要这样做呢?因为JDK1.7是用单链表进行的纵向延伸,当采用头插法时会容易出现逆序且环形链表死循环问题。但是在JDK1.8之后是因为加入了红黑树使用尾插法,能够避免出现逆序且链表死循环的问题。2、扩容后数据存储位置

2021-04-28 00:17:04 385

rabbitmq离线安装.zip

rabbitmq离线安装

2021-04-20

rabbitmq在线安装.zip

rabbitmq在线安装

2021-04-20

phpmailer.zip

phpmailer邮件发送的代码zip压缩包。

2020-05-28

空空如也

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

TA关注的人

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