自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 收藏
  • 关注

原创 创建git项目并提交

上传代码到码云,右击项目点击【Git】–》【Repository】–》【Push…右击项目点击【Git】–》【Add】,接着点击【Git】–》【Commit Directory】在打开的窗口中选择要上传到本地仓库的代码并添加注释后提交到本地仓库内。打开项目并点击菜单栏上的【CVS】–》【Import into version control】–》【Create Git Repository】创建本地仓库。右击项目点击【Git】–》【Repository】–》【Remotes…

2023-08-24 09:56:45 708 1

原创 【无标题】

导出一对多

2023-08-03 16:59:13 258

原创 动态拉取接口数据

动态拉取接口数据

2022-12-07 21:52:31 2018

原创 MyBatis-Plus解决主键自增

Mybatis-Plus主键自增

2022-12-05 21:11:58 3275 1

原创 MybatisPlus实现分页处理数据

MybatisPlus分页插件

2022-11-22 22:03:04 1705

原创 Linux添加Mysql数据库、添加sql脚本

Linux安装Mysql

2022-10-30 19:40:33 841

原创 若依——框架

若依

2022-10-01 15:24:26 231

原创 Redis的启动

Redis的启动

2022-09-27 15:03:03 438

原创 MyBatis的缓存机制详解

MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制,缓存可以极大的提升查询效率。MyBatis中默认定义了两级缓存,分别是一级缓存和二级缓存。(1) 默认情况下,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启。(2)二级缓存需要手动开启和配置,二级缓存是基于namespace级别的缓存。(3)为了提高扩展性,MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存。① 一级缓存(local cache), 即本地缓存, 作用域默

2022-06-03 10:25:32 4171

原创 IDEA导入多模块项目方法

在微服务架构中,我们需要导入别人的项目,如果和普通项目架构一样只导入根目录下的pom.xml文件,就会发现工程下的模块及其子模块都没有成功导入,这时只需点击再次选择根目录下的pom.xml文件即可,这样会将下面的子模块全部添加进项目2.如果只想添加某个单一的模块,可以点击右方maven菜单的+,选择相应模块下的pom.xm文件即可...

2022-05-30 08:08:38 1972

原创 Spring AOP 和 AspectJ的区别

Spring AOP 和 AspectJ的区别springAOP 是spring支持的面向切面AOP 编程。AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。1、目标不同springAOP 不是一个完备的AOP 方案。AspectJ是最首创的AOP技术,用来提供全面的AOP方案。2、织入方式AspectJ 使用了三种不同类型的织入方式:Compile-time weaving

2022-05-29 16:05:37 5456

原创 MyBatis的一级和二级缓存

数据库数据;读写分离,主从复制1、简介查询:连接数据库,耗资源!一次查询的结果,给他暂存在一个可以直接取到的地方! -->内存:缓存。我们再次查询相同数据的时候,直接走缓存,就不用走数据库了1.什么是缓存[ Cache ]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2.为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3.

2022-05-25 20:21:24 167

原创 动态SQL

什么是动态SQL:动态SQL就是根据不同的条件生成不同的SQL语句ifchoose (when, otherwise)trim (where, set)foreach搭建环境创建一个基础工程1:导包2:编写配置文件<mappers> <mapper class="com.kuang.dao.BlogMapper"/></mappers>3:创建一个实体类@Data@SuppressWarnings("all") //镇压警告pu

2022-05-25 20:14:32 157

原创 一对多,多对一

列入:一个老师,对应多个学生 ; 对于老师而言: 一个老师有很多学生 【一对多】表结构代码pojo包下的Studentpackage com.kuang.pojo;import lombok.Data;@Datapublic class Student { private int id; private String name; //学生要关联老师; private Teacher teacher;}Teacherpackage com.k

2022-05-25 20:06:57 144

原创 MyBatis注解开发

注解开发1面向接口编程面向接口编程含义 根本原因:解耦在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程。使用疏解编程 (CRUD)给接口直接写一个注解,进行编程;package com.kuang.dao

2022-05-25 19:33:08 83

原创 Mybatis分页

思考:为什么要分页 (减少数据的处理量)使用limit分页语法:select * from user limit 2,2 (startindex,pageSize)Select *from user limit 3 [0,3]使用MyBatis实现分页,核心SQL;泛型<T , V> 为了指定两个或更多个类型参数,只需要使用逗号分隔参数列表即可编写接口 List getUserLimt(HashMap<String , Integer> map);步骤

2022-05-25 19:21:19 123

原创 MySQL中的锁

锁概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O))的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。全局锁锁定数据表中所有的表全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将被阻塞。其典型的

2022-05-24 09:28:39 281

原创 SpringBoot + Dubbo + zookeeper

六、SpringBoot + Dubbo + zookeeper环境搭建1、启动zookeeper !2、IDEA创建一个空项目;3、创建一个模块,实现服务提供者:provider-server , 选择web依赖即可4、项目创建完毕,我们写一个服务,比如卖票的服务;创建的是Maven项目编写接口package com.baidu.service;public interface TicketService { public String getTicket();}接口的

2022-05-20 18:48:55 917

原创 整合Mybatis操作

整合Mybatis操作https://github.com/mybatisstarterSpringBoot官方的Starter:spring-boot-starter-*第三方的: *-spring-boot-star <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-bo

2022-05-17 14:31:09 133

原创 构建后台管理系统

构建后台管理系统https://www.yuque.com/docs/share/e426e9d5-4d64-4962-a4f9-9af6f06480f6?# 《SpringBoot》链接有效期至 2022-05-20 14:28:051、项目创建thymeleaf、web-starter、devtools、lombok2、静态资源处理自动配置好,我们只需要把所有静态资源放到 static 文件夹下3、路径构建th:action=“@{/login}”4、模板抽取th:insert/re

2022-05-17 14:28:39 644

原创 github查找项目

找开源项目的一些途径• https://github.com/trending/• https://github.com/521xueweihan/HelloGitHub• https://github.com/ruanyf/weekly• https://www.zhihu.com/column/mm-fe特殊的查找资源小技巧-常用前缀后缀• 找百科大全 awesome xxx• 找例子 xxx sample• 找空项目架子 xxx starter / xxx boilerplate•

2022-05-16 17:09:15 164

原创 拦截器实现功能

登录实现后的拦截器需求: 当用户登录之后才能访问数据,注销用户后。再次进入访问刚刚进入的请求,也是可以被访问到的。这就不符合我们的常规。当session注销后,页面应该跳转到首页,并重新登录。设置一个拦截器要求:package com.baidu.admin.interceptor;import lombok.extern.slf4j.Slf4j;import org.springframework.web.servlet.HandlerInterceptor;import org.s

2022-05-15 09:31:22 168

原创 Spring Boot分页操作

分页操作1、加入依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version></dependency>2、Mybatis-Plus工具类@Configurationpublic class My

2022-05-14 20:24:32 819

原创 拦截器,拦截器Demo

概述SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。过滤器与拦截器的区别:拦截器是AOP思想的具体应用。过滤器servlet规范中的一部分,任何java web工程都可以使用在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截拦截器拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用拦截器只会拦截访问的控制器方法, 如果访问的

2022-05-11 11:03:11 264

原创 PublicKeyRetrievalisnotallowed

MySQL8提⽰PublicKeyRetrievalisnotallowed错误解决⽅法在使⽤jdbc连接到mysql时提⽰错误:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed原因如下(参考官⽹给出的连接选项):如果⽤户使⽤了 sha256_password 认证,密码在传输过程中必须使⽤ TLS 协议保护,但是如果 RSA 公钥不可⽤

2022-05-10 09:59:17 1200

原创 MySQL事务原理,日志

事务原理事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。事务四大特征原子性(Atomicity)︰ 事务是不可分割的最小操作单元,要么全部成功,要么全部失败。一致性(Consistency): 事务完成时,必须使所有的数据都保持一致状态。隔离性(lsolation) ∶ 数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。持久性(Durability): 事务一旦提交或回

2022-05-09 19:51:48 544

原创 mysql的索引----索引的使用

索引的使用https://www.bilibili.com/video/BV1Kr4y1i7ru?p=79验证索引效率在未建立索引之前,执行如下SQL语句,查看SQL的耗时。SELECT * FROM tb_sku WHERE Sn = '100000003145001';针对字段创建索引create index idx_sku_sn on tb_sku(sn);然后再次执行相同的SQL语句,再次查看SQL的耗时。SELECT*FROM tb_sku WHERE sn = '100000

2022-05-09 19:36:31 514

原创 mysql的索引----性能分析

1、SQL执行频率MySQL客户端连接成功后,通过show [session]global]status命令可以提供服务器状态信息。通过如下指令, 可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次:# 7个下划线,查看我们的sql执行频率show global status like 'Com_______'2、慢查询日志用来定位哪些SQL语句执行效率比较低,从而进行优化。慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默

2022-05-09 19:19:56 578

原创 mysql的索引

1、索引的概述来自于黑马教程:https://www.bilibili.com/video/BV1Kr4y1i7ru?p=69,快去看吧。草,卷起来1、索引的介绍索引(index)是帮助MysQL高效获取数据 的 数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。2、索引的优缺点2、索引的结构MySQL的索引是在 存储 引擎层 实现的,不同的存储引擎有不同的结

2022-05-07 21:37:54 630 1

原创 MySQL的存储引擎

1 、MySQL 体系结构https://blog.csdn.net/q402057192/article/details/87689739连接层最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。引擎层存储引擎真正的负责了MySQL中

2022-05-07 20:59:30 82

原创 注解版的声明式事务

搭建声明式事务的环境是个人都知道,在对数据库进行增删改操作时,必然是要使用到事务的。因此,接下来,我们就来搭建好声明式事务的基本环境。导入相关依赖首先,在项目的pom.xml文件中添加c3p0数据源的依赖,如下所示。 <!--数据源--> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId

2022-05-05 15:36:46 842

原创 使用@Profile注解实现开发、测试和生产环境的配置和切换

@Profile注解概述在容器中如果存在同一类型的多个组件,那么可以使用@Profile注解标识要获取的是哪一个bean。也可以说@Profile注解是Spring为我们提供的可以根据当前环境,动态地激活和切换一系列组件的功能。这个功能在不同的环境使用不同的变量的情景下特别有用,例如,开发环境、测试环境、生产环境使用不同的数据源,在不改变代码的情况下,可以使用这个注解来动态地切换要连接的数据库。接下来,我们来看下@Profile注解的源码,如下所示。从其源码中我们可以得出如下三点结论:@Profi

2022-05-05 15:17:49 868

原创 初步认识一下BeanDefinitionRegistryPostProcessor

首先,咱们来看一下BeanDefinitionRegistryPostProcessor的源码,如下图所示。从该接口的名字中,我们大概能知道个一二,说它是bean定义注册中心的后置处理器并不过分。而且,从该接口的源码中我们也可以看出,它是BeanFactoryPostProcessor旗下的一个子接口。我们还能看到,它里面定义了一个方法,叫postProcessBeanDefinitionRegistry,那么问题来了,它是什么时候执行的呢?我们可以看一下它上面的详细描述,说的是啥呢,说的是在IOC容

2022-05-05 14:26:31 2195

原创 BeanFactoryPostProcessor的调用时机

BeanFactoryPostProcessor的调用时机BeanFactoryPostProcessor其实就是BeanFactory(创建bean的工厂)的后置处理器。说起这个,你脑海中是不是泛起了回忆,是不是想起了有一个与BeanFactoryPostProcessor的名字极其相似的玩意,它就是BeanPostProcessor。那什么是BeanPostProcessor呢?我们之前早就说过了,它就是bean的后置处理器,并且是在bean创建对象初始化前后进行拦截工作的。现在我们要讲解的是Bea

2022-05-05 14:04:11 1852

原创 枚举添加我们的性别

表中的有些字段值是固定的,例如性别(男或女),此时我们可以使用MyBatis-Plus的通用枚举 来实现1、user数据库中添加sex字段;2、创建通过枚举类型@Getter // 因为枚举里面都是常量public enum SexEnum { MALE(1, "男"), FEMALE(2, "女"); @EnumValue // 将注解所标识的属性的值存储到数据库中 private Integer sex; private String sexName;

2022-05-05 08:11:35 2819

原创 MyBatis-Plus分页操作

分页Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生@Configuration@MapperScan("com.baidu.mapper") //用来扫描Mapper接口所在的包public class MyBatisPlusconfig { /** * 新的分页插件,一缓和二缓遵循mybatis的规则, * 需要设置 MybatisConfiguration#useDep

2022-05-05 07:54:08 1229

原创 MyBatis-Plus乐观锁插件

1、模拟修改冲突1、创建一个数据库,添加一个数据CREATE TABLE t_product( `id` BIGINT(20) not null COMMENT '主键ID', `name` VARCHAR(30) null default null COMMENT '商品名称', `price` int(11) default 0 comment '价格', `version` int(11) default 0 comment '乐观锁版本号', PRIMARY key(id))in

2022-05-05 07:42:23 1118 1

原创 Mybatis-Plus eq、ne、gt、lt、ge、le分别代表含义

Mybatis-Plus eq、ne、gt、lt、ge、le分别代表含义eq 就是 equal等于ne就是 not equal不等于gt 就是 greater than大于lt 就是 less than小于ge 就是 greater than or equal 大于等于le 就是 less than or equal 小于等于in 就是 in 包含(数组)isNull 就是 等于nullbetween 就是 在2个条件之间(包括边界值)like 就是 模糊查询...

2022-05-04 13:57:38 23885

原创 bean的生命周期

六、bean的生命周期https://liayun.blog.csdn.net/article/details/110670961Bean 的初始化和销毁;1、@Bean注解中使用init-method属性和destroy-method属性来指定初始化方法和销毁方法。初始化和销毁方法的时机:你有没有想过这样一个问题,初始化方法和销毁方法是在什么时候被调用的啊?bean对象的初始化方法调用的时机:对象创建完成,如果对象中存在一些属性,并且这些属性也都赋好值之后,那么就会调用bean的初始化方

2022-05-02 21:10:13 23551 6

原创 BeanFactory和FactoryBean的区别

区别:https://liayun.blog.csdn.net/article/details/110391066BeanFactory是个Factory,也就是IOC容器或对象工厂,而FactoryBean就是个Bean。在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。但对FactoryBean而言,这个Bean不是简单的Bean,FactoryBean是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂模式和修饰器模式类似。Fac

2022-05-02 20:36:40 12160

空空如也

空空如也

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

TA关注的人

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