自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

长生的梦呓

欢迎访问我的个人博客:https://slensoft.com/

  • 博客(207)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Java 基础】枚举(Enum)的使用

前言在JDK 5 之前,我们定义常量都是: public static fianl… 。JDK 5 之后,枚举(Enum)引入了。我们可以使用枚举定义定义常量。一、枚举1.什么是枚举?可以将枚举看成一种特殊的类,他的声明的变量默认就有“public static fianl”修饰。枚举都是继承自“java.lang.Enum”类。作用:当需要定义一组常量时,可以使用枚举类型2.枚举使用2.1 语法创建枚举类需要使用“enum”关键字。创建的常量用逗号分隔。enum 枚举名字 {

2021-09-22 15:52:50 2159

原创 【MyBatis-Plus】(9)代码生成器

一、代码生成器AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。可以通过一个类,生成代码,节省大量的开发时间。参考官方文档:代码生成器1.添加依赖pom.xml中添加依赖 <!-- mybatis-plus代码生成器 --> <dependency&

2021-03-23 19:16:00 319 2

原创 【MyBatis-Plus】(8)条件构造器

一、条件构造器官方文档:条件构造器条件抽象类 Wrapper非常重要。他的子类AbstractWrapper有非常多方法。一些复杂的sql条件就可以使用"*AbstractWrapper"的子类来替代!例如,WHERE 子句的一些条件查询。1.QueryWrapper 使用QueryWrapper 对象主要用于查询时设置条件。主要参考官方,下列代码供参考,使用的还是之前的user数据库。@SpringBootTestpublic class WrapperTest { @Autowi

2021-03-23 19:15:02 337

原创 【MyBatis-Plus】(7)性能分析插件

性能分析插件性能分析拦截器,用于输出每条 SQL 语句及其执行时间该插件 3.2.0 以上版本移除推荐使用第三方扩展 执行SQL分析打印 功能可以看到sql语句的执行时间,对慢sql进行优化。1.导入依赖<!-- 性能分析插件 https://mvnrepository.com/artifact/p6spy/p6spy --><dependency> <groupId>p6spy</groupId> <artifactId

2021-03-23 19:11:43 335 1

原创 【MyBatis-Plus】(6)删除 + 逻辑删除

一、测试各种删除还是使用之前springboot项目,使用之前的user表,创建一个UserDeleteTest,用于测试删除。先使用之前的插入语句,多添加几条数据,用于删除测试代码如下:单个id,多个id,多条件删除。更多方法查看官方文档:Mapper CRUD 接口 - Delete@SpringBootTestpublic class UserDeleteTest { @Autowired UserMapper userMapper; /** 单个id删除 */

2021-03-23 19:07:55 359 2

原创 【MyBatis-Plus】(5)查询 + 分页查询

一、测试各种查询还是使用之前springboot项目,使用之前的user表,创建一个UserSelectTest,用于测试查询。代码如下:单个id,多个id,多条件查询。更多方法查看官方文档:Mapper CRUD 接口 - Select@SpringBootTestpublic class UserSelectTest { @Autowired UserMapper userMapper; /** 单个id查询 */ @Test public void

2021-03-23 19:06:36 283 3

原创 【MyBatis-Plus】(4)乐观锁

一、乐观锁参考自:乐观锁插件意图:当要更新一条记录的时候,希望这条记录没有被别人更新乐观锁实现方式:取出记录时,获取当前version更新时,带上这个version执行更新时, set version = newVersion where version = oldVersion如果version不对,就更新失败1.新增字段version还是使用之前的user表,在user表中新增一个字段"version",类型为int,默认值为"1"。2.修改实体类修改实体类,给实体类增加上ver

2021-03-23 19:05:42 925

原创 【MyBatis-Plus】(3)自动填充

前言通常,我们创建数据表时都会增加两个字段:“创建时间”、“修改时间”。在阿里巴巴的《阿里巴巴Java开发手册(华山版).pdf》“(一) 建表规约”中也有规范说明。【强制】表必备三字段:id, create_time, update_time说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。create_time, update_time的类型均为 datetime 类型。所以,在插入数据时,我们需要给"create_time" 和 "

2021-03-23 19:01:43 178

原创 【MyBatis-Plus】(2)主键生成策略

前言该片文章紧接着上一篇文章。现在实现一个插入,并且扩展一下不同的主键生成策略。一、主键生成策略1.测试插入新建一个测试方法,用于测试插入。这里我们并没有给用户输入id(主键)。 @Test public void testInsert() { User user = new User(); user.setName("张三"); user.setAge(20); user.setEmail("[email protected]

2021-03-23 19:00:03 179

原创 【MyBatis-Plus】(1)快速开始

前言MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus 可以简化我们大量工作时间,很多的CRUD代码它都可以自动化完成,类似JPA、tk-mapper。话不多说开始吧。以下参考自官方文档,需要搭配去读:官方文档 - 快速开始一、快速开始注意:这里我自己使用的mysql数据库,而不是官方文档中的H2数据库。1.数据库准备mysql中创建数据库,执行官方文档提供的sql数据。2

2021-03-23 18:56:12 179

原创 钉钉免费内网穿透工具使用

前言该篇文章记录了如何使用钉钉的内网穿透:内网穿透之HTTP穿透1.问题最近在写uni-app的项目,每次后台api接口写好后都需要打包上传到服务器上,这样前端的小伙伴才能拿到数据。因为是SpringBoot项目,如果导成jar包每次都要上传好会儿。后来把项目打成war包,部署到tomcat上,这样只要每次修改替换的文件就好了。但是就算是war包每次仅替换.class文件后还是需要重启tomcat,就很费时间。今天小伙伴推荐使用钉钉的的内网穿透工具,是真的不错,本地改了前端就可以直接访问到,开

2020-08-11 17:34:20 8539 3

原创 MySQL5.7 下载安装

一、下载尽量使用压缩包解压缩方式安装,压缩包的解压后配置下环境变量就能使用。如果使用安装程序(.msi安装程序)安装,卸载起来会比较麻烦。下载地址链接,各版本下载链接二、安装1.解压缩下载的zip压缩包解压缩(我的mysql解压缩安装位置为“D:\software\Programming\Env\mysql-5.7.28”)。解压缩后就是安装了。2 配置环境变量配置环境变量,这样就不用每次都到mysql的bin执行操作了。新建一个MYSQL_HOME,变量值为MySQL的解压缩文件的bin

2020-05-27 22:17:39 1368

原创 【MyBatis】(5)注解SQL

前言使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。 因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句。上面这段来自:官方文档中的 探究已映射的 SQL 语句在MyBatis中可以使用注解来写SQL语句。用的比较少,当作扩展吧。面对简单需求用起来还是挺顺手的。二、案例使用注解...

2020-04-22 01:03:20 774

原创 【MyBatis】(4)动态SQL

前言该文章记录了MaBatis动态SQL常用标签。一、动态SQL 介绍动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映...

2020-04-22 01:01:18 215

原创 【MyBatis】(3)xml 映射文件

前言该篇文章为 xml 映射文件的笔记,主要讲 xml 映射文件(也就是xxxMapper.xml 文件)。一、mapper(xml文件)MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更...

2020-04-22 00:59:00 1673

原创 【MyBatis】(2)xml 配置文件

前言该篇文章为mybatis-config.xml的笔记,主要记录 xml 配置文件中比较主要的配置(不是所有的配置)。也就是xml中的各种标签。参考自官方文档。一、settings(设置)这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。 下表 描述了设置中各项设置的含义、默认值等。比如:logImpl属性,用于指定 MyBatis 所用日志的具体...

2020-04-22 00:58:24 453

原创 FastJson 简单使用

一、FastJson 简单使用下面是几个常用的 JSON 解析类库:Gson: 谷歌开发的 JSON 库,功能十分全面。FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。Jackson: 社区十分活跃且更新速度很快。1.依赖添加依赖,我这里使用的阿里巴巴的fastjson。 <!-- fastjson --> <dep...

2020-04-11 01:29:32 164

原创 【Spring】(17)Spring MVC 上传下载

一、文件上传下载SpringMVC上下文默认中没有装配MultipartResolver,因此默认情况不能处理文件上传和下载。如果想使用Spring的文件上传功能,则需要在上下文(配置文件)中配置MultipartResolver。该篇实现了文件的上传下载,主要学习一个思路。1.项目结构2.配置文件pom.xml依赖需要添加一个文件上传的jar,commons-fileupload,...

2020-04-11 01:28:37 147

原创 【Spring】(16)Spring MVC 拦截器

一、文件上传下载SpringMVC上下文默认中没有装配MultipartResolver,因此默认情况不能处理文件上传和下载。如果想使用Spring的文件上传功能,则需要在上下文(配置文件)中配置MultipartResolver。该篇实现了文件的上传下载,主要学习一个思路。1.项目结构2.配置文件pom.xml依赖需要添加一个文件上传的jar,commons-fileupload,...

2020-04-11 01:26:45 148

原创 【Spring】(15)Spring MVC 乱码问题

一、乱码问题1.项目结构2.配置文件web.xml配置文件<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...

2020-04-09 23:01:23 119

原创 【Spring】(14)Spring MVC 使用注解 + RESTful风格

一、简单使用注解版使用注解,减少了很多代码,以后开发会经常用到。项目结构web.xml配置文件<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSc...

2020-04-09 23:00:13 419

原创 【Spring】(13)Spring MVC 案例 + 运行流程(实现接口)

一、简单使用(实现接口)该片文章使用实现接口。真实开发中不推荐使用这个,推荐使用注解。因为实现接口一个类就之恶能实现一个接口方法,而使用注解可以在一个类中定义多个方法,多个注解这个简单使用,目的是为了了解Spring MVC 的运行流程。使用Spring MVC需要的导入的maven依赖: <dependency> <groupId&...

2020-04-09 22:58:24 301

原创 【Spring】(12)Spring MVC 介绍

一、Spring MVC 简介1.Spring MVC 建键介绍Spring Web MVC是基于Servlet API构建的原始Web框架,并且从一开始就已包含在Spring框架中。正式名称“ Spring Web MVC”来自其源模块(spring-webmvc)的名称,但它通常被称为“ Spring MVC”。与Spring Web MVC并行,Spring Framework 5....

2020-04-09 22:55:14 226

原创 【Spring】(11)声明式事务

一、事务1.概念在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。2.特性事务是恢复和并发控制的基本单位。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。一致性(consistency)。事务必须是使数据库从一个一致性状态...

2020-04-09 22:53:02 140

原创 【Spring】(10)spring整合mybatis:两种方式

一、方式一:使用SqlSessionTemplate参考:http://mybatis.org/spring/zh/getting-started.html1.项目结构项目结构:数据库demo中有一个user表,字段只有id和name。2.pom.xml依赖spring整合mybatis需要导入一些依赖pom.xml依赖如下: <dependencies> ...

2020-04-09 22:48:37 155

原创 【Spring】(9.3)AOP - 实现方式三:自定义切面

一、自定义切面注意maven中还是需要导入jar依赖(aspectjweaver)。项目结构:接口:/** 用户数据访问层接口 */public interface UserDao { void ins(); void del(); void upd(); void sel();}实现类public class UserDaoImpl imple...

2020-04-09 22:47:00 320

原创 【Spring】(9.2)AOP - 实现方式二:注解

一、注解实现切面项目结构接口/** 用户数据访问层接口 */public interface UserDao { void ins(); void del(); void upd(); void sel();}实现类public class UserDaoImpl implements UserDao { @Override pub...

2020-04-09 22:46:19 126

原创 【Spring】(9.1)AOP - 实现方式一:使用Spring API接口

前言Spring AOP 的实现有三种方式:使用Spring API 接口、自定义切面、使用注解。这里将第一种,使用Spring API 接口,另外另种在我的接下来两篇文章中。一、使用Spring API接口使用原生Spring API接口实现数据访问层前后增加日志。注意:使用AOP前,除了spring以外,还需要在maven导入增加一个aspectjweaver的依赖包。 ...

2020-04-09 22:44:54 208

原创 【Spring】(8)AOP - 简单介绍

一、什么是 AOP在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用...

2020-04-09 22:44:10 373

原创 【Spring】(7)JDK 动态代理

一、动态代理动态代理和静态代理角色都一样(抽象角色、真实角色、代理角色)。动态代理的代理类是动态生成的,不是我们直接写好的。(静态代理是我们自己写了代理类,但是动态代理就不需要我们自己的写代理类了。)动态代理分为:基于接口的:JDK 动态代理基于类:cglib基于Java 字节码:Javassist我们主要学习JDK 的动态代理(Spring AOP默认使用JDK...

2020-04-09 22:42:13 176

原创 【Spring】(6)静态代理

一、代理设计模式根据模式是用来完成什么工作来划分,这种方式可分为创建型模式、结构型模式和行为型模式 3 种。代理设计模式属于三种的的:结构型模式(用于描述如何将类或对象按某种布局组成更大的结构)。1.代理模式的定义为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。2.组成抽象角色...

2020-04-09 22:41:28 153

原创 看了这篇Java快速输入输出的解析,再也不怕用Java做算法题超时了

前言最近刷算法题又遇到Java超时的问题了,重新研究一下 Java 的输入与输出。总结了下Java的输入输出。直接说总结吧:Java 的输入输出,只要套上缓冲流(BufferdXxx开头的)速度就会变得高效(更快)。如果你不愿意看全文具体的分析,你可以直接跳转到 一、工具类 中,我封装了快速输入的工具类,同时举例的快速输出的使用,这样以后会用起来更加简单一些。如果你愿意整篇文章看一遍,并且...

2020-04-07 20:57:46 2198

原创 【蓝桥杯】第九届决赛 - 海盗与金币(Java题解)

题目结果填空(满分29分)标题:海盗与金币12名海盗在一个小岛上发现了大量的金币,后统计一共有将近5万枚。登上小岛是在夜里,天气又不好。由于各种原因,有的海盗偷拿了很多,有的拿了很少。后来为了“均贫富”,头目提出一个很奇怪的方案:每名海盗都把自己拿到的金币放在桌上。然后开始一个游戏。金币最多的海盗要拿出自己的金币来补偿其他人。补偿的额度为正好使被补偿人的金币数目翻番(即变为原来的2...

2020-04-05 20:21:45 1038 3

原创 【MyBatis】(1)简单使用

前言该文章只是个人笔记总结,详细学习请访问底部MyBatis官方文档。使用的开发工具为IDEA.一、介绍MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java...

2020-04-05 15:24:08 233

原创 【Spring + Spring MVC + MyBatis】文章目录

一、IoC【Spring】(1)Spring 简单介绍【Spring】(2)Spring 的Ioc简单使用(创建对象)【Spring】(3)IoC - bean 的概述(大纲)【Spring】(3.1)实例化bean对象(三种方式)【Spring】(3.2)bean对象的作用域【Spring】(3.3)依赖注入(基于构造器)【Spring】(3.4)依赖注入(基于setter)【S...

2020-04-05 15:12:44 366

原创 【Spring】(5)IoC - 基于Java的容器配置

前言在之前,我们都是使用xml进行Spring的配置。该篇文章将使用Java注解的方式,实现Spring 的配置。一、基于Java的容器配置项目结构:User 类public class User {}AppConfig 类。注解:@Configuration、@ComponentScan、@Import/** * 注解 @Configuration 相当于:<bea...

2020-04-05 15:07:45 188

原创 【Spring】(4)IoC - 基于注解的容器配置

一、基于注解的容器配置之前Spring容器一直使用xml配置,现在终于到注解了。毕竟如果一直使用xml配置,类多了配置起来就难受了。这篇文章开始,使用注解,会非常开心。对以后学习SpringBoot帮助也很大。注意:这里并不是说xml配置不好,两者各有优缺点,注解和xml的选择需要看情况而定。1.准备要使用注解开发,必须要保证aop的包导入了!并且配置文件xml中需要导入context...

2020-04-05 14:59:03 178

原创 【Spring】(3.6)自动装配

一、自动装配该篇文章讲自动装配。使用的是xml配置文件方式。项目结构:创建实体类public class Cat {}public class Dog {}public class People { private Cat cat; private Dog dog; @Override public String toString() { ...

2020-04-05 14:58:16 272

原创 【Spring】(3.5)依赖注入(扩展)

一、依赖注入扩展该篇讲依赖注入的扩展,用其他的方式注入。使用:p-namespace、c-namespace 简化代码。项目结构:创建实体类Student和Address。public class Address { private String address; @Override public String toString() { ret...

2020-04-05 14:57:00 291

原创 【Spring】(3.4)依赖注入(基于setter)

一、基于setter的依赖注入项目结构创建一个用户类,只有一个无参构造器。一定要生成set方法!因为property标签进行注入时,使用的是setXxx()方法进行注入的。所以该文章标题取名为“依赖注入(基于setter)”。public class User { private String name; public User() { } @Over...

2020-04-05 14:55:16 294

【RuoYi框架】RuoYi框架学习超简单案例 - 新闻管理系统(源码)

这个小项目基于RuoYi后台管理系统。是文章“【RuoYi框架】RuoYi框架学习超简单案例 - 新闻管理系统(附源码)”中的源码。详细文章内容可以点击:https://blog.csdn.net/weixin_44034328/article/details/104081504

2021-03-23

空空如也

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

TA关注的人

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