自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MP + QueryWrapper + 自定义SQL完成连表查询

分析userMapper.selectPage(page, queryWrapper);上面这个分页查询方法,只能针对当前自己的实体,他很好的支持与解决,但是关联查询就不行了。上面代码的底层,会通过拦截器PageInterceptor会进行拦截处理,会把执行的sql和count同时发生执行!同时会根据返回的总数,字段换算出来给Page对象的pages、total、current等属性赋值。数据放在Page对象的records属性中,用一个Page对象整个包裹一层再进行返回。规律基础的s

2021-11-21 18:18:02 16920 7

原创 SQL优化

Mysql优化B树和B+树的认识B树的认识:B+树的认识:1、mysql逻辑分层分为四层:连接层 服务层 引擎层 存储层查询数据库引擎show engines\G;默认引擎InnoDB查看当前使用的引擎show variables like '%storage_engine%';create database myDB;use myDB;create table tb( id int(4) auto_increment, name var

2021-10-05 16:02:17 582

原创 java常见的面试题

java面试题01、谈谈你对spring的理解Spring是一种轻量级的框架,他的出现就是为了解耦。把创建对象的过程全部交给spring容器去管理。Spring框架最大的两个特性就是:ioc + aop01-1、IOCIOC(控制反转)是一种设计思想,就是将原本在程序中new对象的过程交给spring容器去管理。ioc容器它的底层其实就是一个Map,Map中存放着各种各样的对象。以前创建对象的主动权和时机是由自己把控的,ioc让对象的创建由spring自动生产,通过java的反射机制,根据配置

2021-09-09 23:51:02 375

原创 Springboot源码初分析(bean的加载流程)

1、Springboot三大特性1、帮助开发者快速整合第三方框架(原理maven依赖封装)2、内嵌服务器(原理java语言创建服务器)3、完全注解形式代替XML传统的Spring项目:基于xml依赖第三方的模块,都是在xml文件中逐个依赖,还需要在xml文件中配置配置的目的就是让spring区加载和管理这些Bean。需要依赖外部的tomcat容器去部署项目才可以进行项目的发布和部署日志管理,也需要额外的配置配置组件或者应用的时候,非常的麻烦和繁复。Springb

2021-09-06 20:17:02 1100

原创 Spring源码分析(观察者模式、策略者模式)

Spring源码分析1、观察者设计模式什么是观察者模式观察者模式:定义对象之间的一种一对多的依赖关系,当一个对象的状态发生改变的时候,所有依赖它的对象都得到**通知(响应)**并自动更新。又称:发布/订阅、消息通知机制、事件监听机制、事件驱动编程。package com.xuexiangban.service;public class OrderService { public void makeOrder() { // 1:创建订单 -- 主要的职责是:创建订单

2021-09-03 00:13:51 392

原创 初识JVM

JVM1.JVM的位置2.JVM体系结构3.类加载器作用类加载器: 加载class文件 new Student();1.虚拟器自带的加载器2.启动类(根)加载器(rt.jar):主要负责加载核心的类库(java.lang.*等),构造ExtClassLoader和APPClassLoader。3.扩展类加载器(jre\lib\ext):主要负责加载jre/lib/ext目录下的一些扩展的jar。4.应用程序加载器(AppClassLoader):主要负责加载应用程序的主函

2021-09-01 21:10:33 152

原创 注解与反射

注解和反射1、注解AnnotationAnnotation 是从JDK5.0开始引入的新技术Annotation的作用不是程序本身 , 可以对程序作出解释.(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取.Annotation的格式注解是以"@注释名"在代码中存在的还可以添加一些参数值 , 例如:@SuppressWarnings(value=“unchecked”)Annotation在哪里使用?可以附加在package , class

2021-07-09 15:05:59 86

原创 JUC并发编程

JUC(并发编程)1、什么是JUCjava.util.concurrent 包是在并发编程中使用的工具类,有以下三个包:java.util 工具包业务: 普通的线程代码 ThreadRunnable 没有返回值、效率相比于Callable相对较低!)(2、线程和进程线程和进程进程:一个程序,qq.exe,music.exe ,程序的集合一个进程往往包含了多个线程,至少包含一个Java默认有两个线程? 2个 main线程、GC线程线程: 开了一个进程Typo

2021-07-04 14:15:05 145

原创 多线程基础

多线程1.实现多线程两种方式的对比:1、继承Thread类子类继承Thread类具备多线程能力启动线程:子类对象.start()不建议使用: 避免OOP单继承局限性2、实现Runnable接口实现接口Runnable具有多线程的能力启动线程:传入目标对象作为参数+Thread对象.start()推荐使用:避免单继承局限性,灵活方便,方便同一个对象被多个线程使用2.龟兔赛跑(实现Runnable接口)线程模拟龟兔赛跑的过程package com.kuang.demo01;

2021-06-26 23:03:35 161

原创 Redis实战demo

Redis实战Demo说明:本项目来自于学相伴飞哥的Redis教程:https://www.kuangstudy.com/,课程优质,收获很大!项目gitee地址: https://gitee.com/ryt9806/redis-live-demo.git本项目用于redis实现文章的pv统计、黑白名单问题、抽奖功能以及微信抢红包功能!我这里项目 用到的是 连接远程服务器上安装的redis1、实现文章的PV统计使用Redis 中 的 String类型@Controllerpublic cl

2021-06-16 19:12:34 1042

原创 Rabbitmq解决分布式事务demo

分布式事务Demo基于MQ的分布式事务整体设计思路使用Rabbitmq消息队列进行两个服务之间的通信!1.1、基于MQ的分布式事务消息的可靠生产问题如果这个时候MQ服务器出现了异常和故障,那么消息是无法获取到回执信息。怎么解决呢?1.2、基于MQ的分布式事务消息的可靠生产问题-定时重发总结:在生产者这边,会产生一个订单,产生订单之后,将订单存入数据库中,在生者这这边增加一个消息冗余表,用来确认消息是否正确投递到交换机中。这就依赖于消息的确认机制,当消息正确投递时,会将这个信息,写入到数据库

2021-06-08 16:21:07 417

原创 Redis常用的数据类型详解!

1.Redis五大基本数据类型1、String(字符串)常见操作命令###############################################################127.0.0.1:6379> set key1 v1 # 设置值OK127.0.0.1:6379> exists key1 # 判断key1是否存在(integer) 1127.0.0.1:6379> append key1 "hello" # 向key1中增加值"hel

2021-05-19 10:44:10 193

空空如也

空空如也

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

TA关注的人

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