自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 EasyExcel工具类,一键实现表格导入导出,有无对应实体类均可

写操作,有实体类映射时,需加注解@ExcelProperty(“对应表格列名”),不需要导出的列用注解@ExcelIgnore忽略,对于没有固定列,数据列不确定需转化为List ,第一个list为行,第二个list为列,需保证标题列与数据列顺序一致,避免标题与数据错乱,数据库查询的数据可用List接收,确保数据顺序可控,在转为List。03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便。

2023-08-03 22:56:03 1445 4

原创 SpingBoot项目启动时执行一次代码(全)

有时根据项目要求需要在项目启动时去执行一些操作,比如资源的加载、系统IP的获取、 读取配置文件,数据库连接等,实现方法也有多种。

2023-07-31 23:39:12 1417

原创 端口占用解决办法,web service failed to start.Port 8083 was already in use.

端口被占用

2022-12-13 14:23:21 1461 1

原创 Java校验日期的合法性

判断一个日期是否合法,如2022-02-29、2022-13-01就属于不合法日期。

2022-09-16 13:15:58 2608

原创 Java解析SQL,替换SQL中的##

将sql语句中的##替换为数组[1,2,3]中真实值,变为一条可执行SQL。

2022-09-16 11:58:33 839

原创 Java获取两个时间之间的所有时间集合

取两个时间之间的所有时间集合比如2021/12/01 14:01——2021/12/01 15:01public class Test { public static List<String> getDate(String startTime, String endTime){ //定义时间格式 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

2021-12-24 13:38:04 2190

原创 最全Shiro教程,一篇学会Shiro权限管理

声明:本文是博主观看bilibili上Java涛哥视频学习的Shiro框架所整理笔记,学完思路清晰,原文代码大致相同,原视频链接附上,方便以后学习查看。Shiro​ Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境。一、权限管理不同身份的人进入系统所完成的操作不同,如下图,当一个系统包含左侧所有菜单功能时,要求不同人员登录展示不

2021-12-23 10:28:03 9793 5

原创 SpringMVC中的文件上传

文件的上传1. 导入文件上传坐标<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version></dependency>2. 配置文件解析器<!-- 配置文件上传解析器 --> &lt

2021-12-21 11:34:33 116

原创 Mybatis的PageHelper分页插件

Mybatis的PageHelper分页插件PageHelper是Mybatis第三方分页插件。基于plugin的方式与Mybatis整合,通过PageHelper提供的API完成对数据的分页查询。PageHelper使用步骤1. 添加Maven依赖或者jar包使用PageHelper需要添加两个jar包PageHelper-5.1.11.jarjsqlparser-3.1.jar 用于解析sql的工具Maven依赖 <dependency> <g

2021-12-03 11:08:40 416

原创 Mysql跨库跨表联表查询

Mysql跨库跨表连表查询查询两个库中两个表中的关联数据,如下图中,查询数据库dept中表dept和数据库emp中的表emp中关联的数据SQL语句格式SELECT * FROM 数据库1.表1,数据库2.表2 where 条件;select * from emp.emp a,dept.dept b where a.deptno=b.deptno查询结果...

2021-11-30 16:14:16 3139

原创 Mybatis多表关联查询

Mybatis多表关联查询1.一对一关联查询标签javaType:关联对象的类型2. 一对多关联查询<collection>标签javaType:关联对象的类型ofType:指定集合里存放的对象类型查询一个用户的多条订单...

2021-11-24 16:32:08 96

原创 Mybatis的一级缓存和二级缓存

Mybatis的一级缓存和二级缓存Mybatis会将相同查询条件的SQL语句的查询结果存储在内存或者某种缓存介质中,当下次遇到相同的SQL时不执行该SQL,而是直接从缓存中获取结果,减少服务器的压力,尤其是在查询越多、缓存命中率越高的情况下,使用缓存对性能的提高更明显。Mybatis缓存分为一级缓存和二级缓存,一级缓存是将结果缓存在SqlSession对象中,二级缓存是存储在SqlSessionFactory对象中。默认情况下,Mybatis开启一级缓存,不开启二级缓存当数据量更大时,可以借助第

2021-11-24 16:25:20 1785 2

原创 Mybatis的动态SQL(if、where、choose、bind、set、foreach标签)

Mybatis的动态SQL(if、where、choose、bind、set、foreach标签)1.if单分支判断语句<select id="selectUserByProperty" resultType="com.zd.pojo.Users"> select * from users where 1=1 <if test="userid!=0"> and userid=#{userid} </i

2021-11-24 16:11:11 1342

原创 Mybatis主键值回填

当插入一条语句时,返回他的主键值1. 获取自增主键值(mysql、sqlserver)在插入节点上添加useGeneratedKeys属性,同时设置接收回传主键的属性。配置完成后,我们执行一个插入操作,插入时传入一个对象,插入完成后,这个对象的id 就会被自动赋值,值就是刚刚插入成功的id。2. 获取非自增主键值...

2021-11-24 15:44:22 295

原创 Mybatis的分页查询

1. 使用RowBoundsRowBounds是Mybatis提供的一个专门处理分页的对象。在RowBounds对象中有两个成员变量:​ offfset:偏移量,从0开始计数​ limit:限制条数使用RowBounds进行分页,不需要在SQL中写limit就可完成分页处理,是由于它是在SQL查询出所有结果后进行截取,适用于数据量小的SQL,在面对数据量大的SQL不适用。2. 使用SQL语句分页​ 在分页查询时,如果返回的结果较多,那么需要使用特定的SQL语句来实现分页处理。在数据库中可以

2021-11-24 15:37:52 636

原创 Mybatis中的特殊字符处理

Mybatis中的特殊字符处理在Mybatis的3.4.X版本以下不可以使用一些特殊字符,如<,>,&等,可以使用符号的实体来表示注意必须 “ ;”结尾

2021-11-24 15:28:50 1455

原创 MyBatis的Mapper动态代理及四种传参方法

MyBatis的Mapper动态代理1. Mapper动态代理​ mapper不使用动态代理是指dao层的实现自己创建,在接口实现类的方法中自己调用SqlSession完成对数据库的操作,这样只能向SQL中传递一个参数,多个参数要封装到POJO或者Map中,且调用SqlSession对象的方法时会有硬编码现象namespace+id​ 使用Mapper动态代理只需要写dao层接口,不需要创建dao层实现类,Mybatis会自动生成实现类的代理对象。在dao层只需要创建接口与映射文件即可2. Ma

2021-11-24 15:24:38 1885

原创 Mybatis中指定类使用别名

Mybatis中指定类使用别名Mybatis中的别名配置和XML配置有关,用来减少类完全限定名的多余部分,不分大小写使用typeAlias指定单个类的别名<typeAliases> <typeAlias type="com.aa.pojo.User" alias="user"/></typeAliases>这样在mapper里写sql的返回类型或者参数类型就可以直接写user了。<select id="getUserById" paramterTyp

2021-11-24 15:10:01 498

原创 Mybatis中band绑定String参数报错:There is no getter for property named ‘xxx‘ in ‘class java.lang.String‘解决问题

Mybatis中band绑定String参数报错:There is no getter for property named ‘xxx’ in 'class java.lang.String’解决问题在学习mybatis中的band标签时,写了一个模糊查询,如下:dao层方法: List<Users> selectUserByName(String username);<!--模糊查询--><select id="selectUserByName" resul

2021-11-15 15:18:09 705

原创 报错:Error querying database. Cause: java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘

报错:Error querying database. Cause: java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)在学习Mybatis时遇到错误Access denied for user ‘root’@‘localhost’ (using password: YES),一直找不到原因,如图:出现此类原因大部分不是技术上的问题,是粗心造成的,翻译显示:查询数据库时出错。原因

2021-11-11 14:00:25 18153 9

原创 javaWeb:Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> [XXX] in servle

Caused by: java.lang.IllegalArgumentException: Invalid [XXX] in servlet报此错误的原因为配置servlet映射路径错误,检查@WebServlet()或者web.xml中的配置。正确的路径前有/

2021-11-09 11:01:37 265

原创 Java单点登录

Java设置用户在一处登录,另一处就被挤掉当用户登录时,将用户信息存入session中(前提先判断已经验证过是未登录用户,即session中无用户信息),然后通过ServletContext获取之前用户登录的信息,如果没有,就代表一个同用户登录,把新用户的信息存入servletContext中如果有,就代表在别处该用户已经登录,servletContext.removeAttribute删除用户信息,并销毁session中的信息。@Override protected void doGet(Ht

2021-11-09 10:18:25 950

原创 解决HttpSession超时销毁异常问题java.lang.IllegalStateException: invalidate: Session already invalidated

问题:​ 当设置的HttpSession时间超时时,系统就会销毁用户登录存储的session信息,但此时再打开一个浏览器登录就会报错,是因为此时,ServletContext中存储的用户session还在,再次登录销毁另一个已经不存在的session就会报错java.lang.IllegalStateException: invalidate: Session already invalidated解决办法:​ 创建一个session生命周期的listener监听器,当HttpSession销毁

2021-11-09 09:59:14 2423

原创 SpringCloud的快速入门教程

Spring Cloud入门1.Springcloud1.1 什么是微服务架构微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务 运行在自己的进程中,并使用轻量级的机制通信。这些服务围绕业务能力来划分,并通过自动化部 署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。1.2 为什么学习SpringClond首先springcloud基于spingboot的优雅简洁,可还记得我们被无数xml支配的恐惧?可还记得 spri

2021-09-04 20:54:08 6791 2

原创 消息队列中间件RabbitMQ安装及其三种模式(直接模式、分裂模式和主题模式)的应用

消息队列RabbitMQ1.消息队列中间件简介1.1消息队列中间件简介消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性[架构] 使用较多的消息队列有 ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 。1.2RabbitMQ的特点1.可靠性(Reliability)RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认。2.灵活的路由(Flexible Rout

2021-08-26 17:37:49 418

原创 Docker的安装、镜像拉取、创建容器、应用部署、备份迁移

1.Docker简介1.1什么是Docker​ Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。​ 在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。​ 大多数Docker容器只需要不到1秒中即可启动。由于去除了管理程序的开销,Docker容器拥有很高的性能,同时同一台

2021-08-19 20:43:48 10605

原创 Linux下的Nginx反向代理、负载均衡、动静分离和集群的搭建

一、反向代理反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返 回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。1. 通过反向代理访问tomcat下的项目修改nginx安装目录下的nginx.conf配置文件,当在浏览器访问centOS的IP:80时,自动代理跳转到tomcat//启动tomcat服务 cd /usr/l

2021-08-17 20:31:37 245

原创 Linux中安装Nginx

nginx介绍Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等1.安装nginx环境gcc安装nginx需要先将官网下载的源码进行编译,编译gcc环境 ,如果没有gcc环境,需要安装gccyum install gcc-c++PCRE​ PCRE(Pe

2021-08-17 19:44:16 78

原创 Linux的学习及安装jdk、tomcat和部署项目

1. Linux目录结构2. 常用命令pwd 查看当前文件夹所在目录clear 清屏~ root目录cd .. 切换到上一层目录cd / 切换到系统根目录cd - 切换到上一个所在目录Ctrl +Z 强制停止 ./ 启动命令 ls 显示当前目录下的内容ls -a 显示所有文件或者目录(包含隐藏的文件)3. 创建目录和移除目录 mkdir (m

2021-08-17 19:32:13 111

原创 Spring Boot整合redis

Spring Boot整合redis1.添加redis的起步依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </paren

2021-08-08 14:36:53 59

原创 Spring、SpringMVC、Mybatis整合

1.引入依赖pom.xml<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency>

2021-08-08 14:35:58 56

原创 Spring切面面向编程AOP和声明式事务管理

1.切面面向编程AOP第一步:导入切面相关联的坐标<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.7</version></dependency>第二步:在配置文件中追加切面的命名空间<?xml version="1.0" enc

2021-08-08 14:35:12 153

原创 SpringMVC的搭建与学习

SpringMVC1.搭建第一个SpringMVC工程第一步:导入maven坐标<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </

2021-08-07 21:23:04 149

原创 Spring的IOC和DI

Spring1. Spring概述Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IOC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。2. 搭建

2021-08-07 21:21:14 71

原创 Mybatis搭建与学习

MybatisMybatis简介MyBatis 是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。搭建第一个Mybatis工程第一步:创建Java Maven项目第二步:导入pom.xml坐标第三步:创建My

2021-08-07 21:19:28 66

原创 maven常用坐标

<dependencies><!--mybatis的依赖--><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version></dependency> <!--整合mybatis与spring需要的jar包-->&l

2021-08-07 21:16:34 164

原创 搭建第一个SpringDataJPA工程及基本操作

搭建第一个SpringDataJPA工程1.创建Java工程2.导入jar包或者maven坐标<properties> <spring.version>4.2.4.RELEASE</spring.version> <hibernate.version>5.0.7.Final</hibernate.version> <slf4j.version>1.6.6</slf4j.vers

2021-08-07 21:13:13 265

原创 搭建第一个JPA工程及基本增删改查操作

搭建第一个JPA工程创建Java工程导入jar包或者maven坐标<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.hibernate.version>5.0.7.Final</project.hibernate.version> </properties>

2021-08-07 21:10:14 128

原创 SpringBoot整合Spring Data JPA

SpringBoot整合Spring Data JPA1.添加Spring Data JPA的起步依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ma

2021-08-07 21:06:53 79

原创 SpringBoot整合Junit

SpringBoot整合Junit1.添加Junit的起步依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></dependency>2.测试类@RunWith(SpringRunner.cl

2021-08-07 21:05:25 80

初学Shiro框架项目

搭建了Shiro框架下不同管理员登录显示不同菜单的权限管理,配数据库

2021-12-23

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

TA关注的人

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