自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

于小猿的博客

自己学到的知识点,记下来方便复习,也希望能帮到更多人

  • 博客(73)
  • 资源 (5)
  • 收藏
  • 关注

原创 手写分页代码对List集合进行分页

【代码】手写分页代码对List集合进行分页。

2023-05-13 15:16:01 936 1

原创 stream().filter()的用法

stream().filter()的用法。

2023-03-13 18:41:35 1454

原创 枚举类中通过key获取value,通过value获取key

在外部直接使用CardStatusEnum.getCodeMethod()方法,传入value,就能获取相应的code,使用CardStatusEnum.getDescMethod()方法,传入key,就能获取相应的desc。

2023-02-17 20:52:14 1652

原创 数据库字段类型、实体类字段类型、mapper文件jdbcType三者对应关系

数据库字段类型、实体类字段类型、mapper文件jdbcType三者对应关系。

2022-07-23 18:56:19 1619

原创 @Param注解的用法

@Param注解是为SQL语句中参数赋值的。@Param的作用就是给参数命名,比如在mapper里面某方法List selectCardInfoByClientNo(String cNo);当添加注解后:List selectCardInfoByClientNo(@Param("clientNo") String cNo);也就是说外部想要取出传入的id值,只需要取它的参数名 clientNo 就可以了。将参数值传入SQL语句中,通过#{clientNo}进行取值给SQL的参

2022-06-28 17:07:53 2094

原创 Java中判断是否为空的几个工具类

首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的另一种是org.springframework.util包下的。这两种StringUtils工具类判断对象是否为空是有差距的:从上面的例子可以看出第二种的StringUtils类更实用。 基本上判断对象是否为空,StringUtils.isEmpty(Object str)这个方法都能搞定。判断是否相等:// 这种写法本身没有错,但是会有一个问题,就是没有判断name是否为空,当nam

2022-06-15 14:45:00 9592

原创 Apollo分布式配置中心 - 服务中间件

一、概念1、什么是配置?应用程序在启动和运行的时候往往需要读取一些配置信息(可以理解为系统参数),配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数等。配置主要有以下几个特点:1)配置是独立于程序的只读变量① 配置首先是独立于程序的,同一份程序在不同的配置下会有不同的行为。② 配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置。2)配置伴随应用的整个生命周期① 配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在

2022-05-18 14:47:43 1407

原创 领域驱动设计(DDD)

基本概念:1.实体(Entity):通常实体具备唯一id,能够被持久化,具有业务逻辑,对应现实世界业务对象。实体一般和主要的业务/领域对象有一个直接的关系。一个实体的基本概念是一个持续抽象的生命,可以变化不同的状态和情形,但总是有相同的标识。2、值对象(Value Object)值对象的定义是:描述事物的对象;更准确的说,一个没有概念上标识符描述一个领域方面的对象。这些对象是用来表示临时的事物,或者可以认为值对象是实体的属性,这些属性没有特性标识但同时表达了领域中某类含义的概念。通常

2022-04-25 17:58:58 1584

原创 ElasticSearch 总结

ElasticSearch将需要存储的数据分为:结构化数据、非结构化数据、半结构化数据结构化数据一般为二维的表结构,比如一张表包含了用户的姓名性别年龄等信息。(一般保存到关系型数据库中,如 MySQL)非结构化数据 是无法用二维表结构表现数据的一种数据,比如服务器日志、工作文档、报表、视频音频图片等。(一般保存到 NOSQL 数据库中,如 Redis、HBASE(以 key、value 结构保存数据))半结构化数据 是将数据的结构和内容混在一起,比如 xml 文件、html 文件(一般保存.

2022-03-17 23:09:42 2990

原创 1、搭建完整项目工程结构、使用代码生成器开发租房管理模块、整合Swagger进行接口测试、增删改查分页、自动填充封装、统一返回结果、统一异常处理、统一日志处理

1、创建父工程rent_parent2、把父工程中pom.xml文件中的版本改为2.2.1,并把父工程的类型改为pom类型(加上<packaging>pom</packaging>)3、引入相关依赖<properties> <java.version>11</java.version> <rent.version>0.0.1-SNAPSHOT</rent.version> &

2021-07-05 14:51:13 372

原创 JVM介绍、JVM调优(堆内存调优)、类加载器、双亲委派机制、native、栈、堆、垃圾回收机制、GC算法

1、JVM 的位置:JVM 运行在操作系统之上,JVM 也是一个软件,Java 文件就在这层软件上执行。2、JVM 的体系结构(简图):JVM 调优:就是解决垃圾回收,主要在堆中,方法区是特殊的堆,因此 JVM 调优就是调堆。本地方法栈:Native Method Stack,登记 native 方法,在最终执行的时候,通过本地方法接口(JNI)加载本地方法库中的方法3、类加载器:作用:加载 Class 文件进内存类加载器又分为几种:①虚拟机自带的加载器②启动类(

2021-04-15 08:24:39 663 2

原创 SpringBoot项目中自己编写SQL语句并调用

第一步:在 mapper 的接口中定义方法(使用到的PublishVo对象需要自己定义):第二步:在 mapper 对应的 xml 文件中写 SQL 语句:注意:xml 文件中 select 标签的 id 属性就是上一步在 mapper 接口中定义的那个方法名,resultType 就是返回的类型,在上一步的 mapper 接口中的返回类型是自定义的实体类型 PublishVo,因此就写上实体类 PublishVo 的全路径。SQL语句的条件值要使用#,不能使用$,因为$会产生SQL注入问题

2021-04-11 17:13:24 10065 4

原创 使用element-ui的日期选择器选择时间时少一天,以及解决dateObject.getTime is not a function

在使用element-ui中的日期选择器选择时间时,选择一个时间之后,传递到后台就会少一天,比如在前端页面中选择4月1号:但是传递到后台就是3月31号解决方法:只需要在 el-data-picker 标签中加上 value-format="yyyy-MM-dd"再次运行,当选择日期之后就会报错(如果不报错就不需要下面的操作了):这是因为 rules 中 type:'date' 造成的,只需要去掉 rules 中的 type:'date' 即可:再次运行:.

2021-04-11 15:50:29 2819

原创 解决IDEA报错:Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

在做单点登录时,使用 token 返回用户的信息,但是在运行时报错:org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter at org.springframework.web.servlet.DispatcherServlet.d.

2021-03-21 15:48:38 1943 3

原创 解决IDEA报错:Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoo

Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoolConfig at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClass.

2021-03-21 15:46:37 2466

原创 Nginx的介绍、功能、下载安装和使用

1、什么是Nginx?Nginx就是一个反向代理服务器。2、Nginx的功能(三个常见的功能)(1)请求转发简单来说,请求转发就是从客户端发过来一个请求,先发给Nginx服务器,Nginx再转发到另外一个服务器。更具体:通过客户端或者浏览器发送一个请求,这个请求首先到的不是Tomcat服务器中的接口,而是首先到达Nginx服务器,Nginx服务器会根据发送过来的请求,再转发到不同的服务中去,比如转发到8001端口的service服务,或者转发到8002端口的oss服务。这个过程就

2021-03-05 17:24:17 433 1

原创 axios发送ajax请求

1、axios是一个独立的部分,不是vue中的一部分,但是经常将axios和vue一起使用,实现ajax操作。2、使用场景3、使用步骤①、创建HTML页面,引入js文件,包含两个js文件,vue和axios②、创建一个json文件,写一段json代码,用于后面的调用{ "success":true, "code":20000, "message":"成功", "data":{ "items":[ {"nam

2021-02-17 08:24:27 465 1

原创 简单免费下载vue-router.js和vue-router.min.js文件

下载 vue-router.js 文件:https://unpkg.com/vue-router@3.5.1/dist/vue-router.js直接 Ctrl+S 保存即可。下载 vue-router.min.js 文件:https://unpkg.com/vue-router@3.5.1/dist/vue-router.min.js直接 Ctrl+S 保存即可。

2021-02-16 08:30:43 8696 4

原创 整合swagger进行接口测试

一、Swagger2 介绍在前后端分离开发模式中,API文档是最好的沟通方式。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 能够生成一个在线的接口文档,可以看到文档中的接口有什么功能、里面需要传递哪些参数、返回的数据。方便测试接口。特点:1、及时性(接口变更后,能够及时准确地通知相关前后端开发人员)2、规范性(保证接口的规范性,如接口的地址、请求方式、参数及响应格式和错误信息)3、一致性(接口信息一致,

2021-02-11 15:19:12 8867 1

原创 MybatisPlus的性能分析插件

MybatisPlus提供了一个性能分析插件,该插件可以检测出每条SQL语句的执行时间,我们可以根据SQL语句的执行时间判断项目运行的效率,对执行时间长的(效率低的)SQL语句进行改进,以对项目进行一个优化。可以看下面这个视频:https://www.bilibili.com/video/BV1r541147cZ?p=16...

2021-01-08 22:18:14 238

原创 MybatisPlus实现物理删除和逻辑删除(重点:逻辑删除)

首先看一下数据库中表的数据:物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除数据1、根据 ID 删除记录//根据ID删除记录(物理删除)@Testpublic void testDeleteById(){ int result = userMapper.deleteById(1L); System.out.println(result);}运行,看数据库中 user 表中 id 为 1 的数据是否被删除2、批量删除//批量删除

2021-01-08 22:09:52 19924 8

原创 MybatisPlus实现分页

MyBatisPlus 自带分页插件,只要简单的配置即可实现分页功能:数据库中表的数据:1、添加分页插件package cn.henu.config;import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import org.mybatis

2021-01-08 21:00:58 3660

原创 MybatisPlus实现乐观锁

乐观锁是针对某种问题的解决方案,主要解决丢失更新问题。如果不考虑事务的隔离性,就会产生几种读的问题:脏读、不可重复读、幻读(虚读)如果不考虑事务的隔离性,也会产生写的问题:丢失更新问题(在并发情况下才有的问题)事务的隔离性就是指在两个及以上的用户同时对同一个数据进行操作时所产生的问题。什么是丢失更新?多个人同时修改同一条记录,在这个过程中,谁最后提交事务,就会把之前的人提交的数据进行覆盖,这个过程就叫做丢失更新。解决方案:1、悲观锁(一般不用)悲观锁的特点就是..

2021-01-08 17:54:55 3112

原创 创建SpringBoot项目,使用MybatisPlus实现CRUD操作、自动填充

自动填充:不需要原始的手动添加 set 方法实现数据的填充,而是使用 MybatisPlus 的自动填充功能实现数据的添加首先看一下表的结构:再看一下表的数据:一、原始方式(手动添加):1、在表中添加两个字段:create_time(创建时间)和 update_time (修改时间)添加之后的表结构:添加之后的表数据:2、在实体类中添加这两个属性package cn.henu.domain;import com.baomidou.mybatis...

2021-01-08 11:01:49 576

转载 主键生成策略

1. 数据库自增长序列或字段在创建表时使用MySQL的关键字 AUTO_INCREMENT 实现主键自动增长(每次加1)优点:1)简单,代码方便,性能可以接受。2)数字ID天然排序,对分页或者需要排序的结果很有帮助。缺点:1)不同数据库语法和实现不同,数据库迁移的时候或多数据库版本支持的时候需要处理。2)在单个数据库或读写分离或一主多从的情况下,只有一个主库可以生成。有单点故障的风险。3)在性能达不到要求的情况下,比较难于扩展。4)如果遇见多个系统需要合并或者涉及到.

2021-01-07 23:41:54 258

原创 Umijs 的安装部署及快速入门

部署安装1、首先需要安装 node.js2、安装 yarn,其中 tyarn 使用的是 npm.taobao.org 的源,速度要快一些#安装 yarnnpm i yarn tyarn -g #-g 是指全局安装#查看tyarn的版本tyarn -v#安装umityarn global add umi#测试 umi当使用 tyarn -v查看 tyarn 的版本时,可能会出现下面问题:出现这种问题其实已经安装成功了,只是没有将 yarn 添加到系统的环境变量中,.

2021-01-07 21:04:42 3938 2

原创 ES6新特性:let 和 const 命令

var之前,我们在写 js 定义变量的时候,只有一个关键字:var但是,var 有一个问题,就是定义的变量有时候会莫名其妙的成为全局变量。例如:for (var i = 0; i < 5; i ++){ console.log(i);}console.log("循环外:" + i);运行打印的结果如下:可以看出,使用 var 定义变量时,它的作用域是不可控的,在循环外部也可以获取到变量的值,显然变量的作用域范围太大了。letlet 所声明的变量,只在.

2021-01-06 22:16:52 140

原创 IDEA报错:java.sql.SQLException: The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents..

在学习SpringBoot集成Mybatis时,运行之后在浏览器访问,出现了以下错误:java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration p

2020-12-15 10:31:59 6025

原创 搭建 SpringBoot 项目(快速方法)

1、New 一个 Module2、选择 Spring Initializr3、命名4、 选择 Web,勾选 Spring Web(现在只是一个简单的搭建环境,以后开发中需要勾选很多选项)5、给模块命名6、 创建成功之后的效果跟用普通方法创建的一样坐标也是自动导入:7、运行...

2020-12-14 11:30:47 236

原创 搭建 SpringBoot 项目(普通方法)

1、首先创建一个文件夹,命名为 SpringBoot,复制该文件夹的位置2、 点击 File ,点击 Open3、打开 SpringBoot4、鼠标右键,New 一个 Module5、选择 maven,选择 jdk 版本6、给模块命名7、创建成功之后的页面8、添加 SpringBoot 的起步依赖SpringBoot要求,项目要继承 SpringBoot 的起步依赖 spring-boot-starter-parent <!-...

2020-12-14 10:30:49 370

原创 下载 axios.js 文件到本地

1、百度搜索 GitHub 官网:https://github.com/2、搜索 axios3、点击 axios/axios4、下载到本地5、解压,进入到 dist 文件夹自己下载,不求人。

2020-11-19 11:09:43 26843 9

原创 使用 IDEA 创建工程,并在工程中通过 npm 安装下载 vue.js

首先需要在电脑上安装nodejs,因为nodejs中已经内置了npmnpm的下载安装:https://blog.csdn.net/YyjYsj/article/details/109669338打开IDEA,创建工程1、创建一个新的工程选择 Static Web命名,点击完成2、安装 vue2-1、下载安装 vue.js下载地址:https://github.com/vuejs/vue 可以下载 2.6.12 版本:https://github.com/v..

2020-11-13 15:00:12 1542

原创 什么是 npm ?npm 下载安装使用

今天在学习 vue 的时候了解到了一个软件包管理工具 npm,当时不知道这是什么工具,就百度了一下,并且学习了如何使用,觉得需要写下来记录一下,方便以后使用npm 的全称是 Node Package Manager,是一个 NodeJS 包管理和分发工具,也就是说,npm 是用来管理软件包的使用:1、要使用 npm 这个软件包管理工具,需要在电脑上安装 nodejs,因为 nodejs 软件内置了 npm,下载地址为:http://nodejs.cn/download/根据自己的需要下载:

2020-11-13 10:58:56 2171

原创 基于 maven 构建 SSM 工程(能运行)

1、搭建数据库环境1-1、创建数据库 ssmweb1-2、创建商品表 item1-3、插入一条数据,用于后续测试使用SQL 语句:create table item( id int not null auto_increment, name VARCHAR(255) DEFAULT null, price FLOAT DEFAULT NULL, createtime datetime DEFAULT null, detail VARCHAR(255) DEFAUL

2020-11-05 14:21:32 397

原创 MyBatis 的 配置文件开发方式 和 注解开发方式(对数据库进行增删改查)

代码较多,请耐心看完,一定能学会!!!首先不使用注解方式把环境配置好:1、目录结构:2、根据数据库中的 user 表,写一个 user 的实体类 (cn.henu.domain.User.java)package cn.henu.domain;import java.util.Date;public class User { private int id; private String username; private String password;

2020-11-03 16:31:27 481

原创 MyBatis 的多表操作:一对一、一对多、多对多

一对一:一个订单只能属于一个人一对多:一个人可以有多个订单多对多:一个人可以有多个角色,但这些角色也可以被其他人拥有一对一:一个订单只能属于一个人order 表结构:user 表结构:1、首先根据数据库中的 order 表创建 order 的实体类,并在order的实体类中添加一个 user 字段package cn.henu.domain;import java.util.Date;public class Order { private int i.

2020-11-03 14:06:24 1216 1

原创 IDEA报错:NoSuchBeanDefinitionException: No bean named ‘userService‘ available  

在Spring 的注解开发中,会经常出现这样的错误提示,这是因为在需要创建 Bean 的上面加上注解之后,在 applicationContext.xml 中没有配置组件扫描器,Spring 不知道要扫描哪个目录下的文件,因此只需要在 applicationContext.xml 文件中配置组件扫描器,并指定要扫描的文件目录即可。...

2020-11-02 13:18:10 4014 1

原创 IDEA报错:错误:java:错误:不支持发行版本5

在做maven项目时经常会报这种错误:java:错误:不支持发行版本5。这是因为在此项目中Java编译器中默认使用的JDK版本太低所导致的,修改方式为:任意选择一个高点的版本,点击确定,即可解决不过这种设置方式不太好,因为一旦修改了pom.xml文件,这里的设置就可能又会被自动设置为1.5。下面介绍一种有效的方法:解决办法就是在pom.xml中指定 maven-compiler-plugin的版本,该版本会同时影响LanguageLevel和JavaCompiler,修改后默认就使用..

2020-11-02 13:11:52 21902 11

原创 MyBatis 集成分页插件

MyBatis 可以使用第三方的插件来对功能进行扩展,分页助手 PageHelper 是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据。开发步骤:①首先配置环境②导入通用 PageHelper 的坐标③在 mybatis 核心配置文件中配置 PageHelper 插件④测试分页数据获取1、首先在持久层写一个查询全部信息的方法 findAll()package cn.henu.mapper;import cn.henu.domain.User;import

2020-11-02 13:02:27 653

原创 IDEA 搭建 Spring 项目环境

1、首先创建一个项目或者模块2、 使用模板3、 命名4、 点击完成5、默认打开 pom.xml 文件6、在 pom.xml 中导入坐标<?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:schem.

2020-10-30 17:19:15 554

gulixueyuan_课件.rar

谷粒学院课件

2021-06-26

anjiale_rent.rar

rent项目-为知笔记-开发步骤

2021-06-26

rent_parent.rar

源代码

2021-06-26

Redis3_win.zip:一款高性能的NOSQL系列的非关系型数据库

redis是一款特殊的数据库软件,它是一款高性能的NOSQL系列的非关系型数据库。Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)

2020-10-13

qrcode.js:用于生成二维码的一个JavaScript库

qrcode.js是用于生成二维码的一个JavaScript库,只需引用这个,就能自己生成想要的二维码,里面可以添加文字、图片、网址等信息,也可以修改文字样式

2020-07-22

空空如也

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

TA关注的人

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