自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 索引失效的原因

1.没遵守最左前缀法则(查询从索引的最左前列开始,并且不跳过索引中间的列)2.在索引上做了操作(计算、函数、(自动或手动)类型转换)3.存储引擎不能使用索引中范围条件右边的列(范围之后全失效)4.mysql在使用不等于(!=或者<>)的时候无法使用索引5.is null,is not null 也无法使用索引6.like以通配符开头(’%abc…’)mysql索引会失效7.字符串不加单引号索引失效8.少用or,用它来连接时会索引失效...

2021-03-24 22:31:41 205 1

原创 Join多表连接

内连接、左连接、右连接以及全连接查询内连接查询 inner join关键字:inner join on语句:select * from a_table a inner join b_table b on a.a_id = b.b_id;说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。案例解释:在boy表和girl 表中查出两表 id 字段一致的姓名(gname,bname),boy表和girl 表如下:采用内连接查询方式:SELECT * FRO.

2021-03-24 22:31:02 2272

原创 SpringMVC的执行流程

1.用户发送请求至前端控制器DispatcherServlet。2.DispatcherServlet收到请求后调用HandlerMapping处理器映射器。3.处理器映射器根据请求URL查找匹配该url的Handler,并返回一个执行链。4.DispatcherServlet再请求 处理器适配器(HandlerAdapter)调用相应的Handler进行处理并返回ModelAndView给DispatcherServlet.5.DispatcherServlet将ModelAndView请求Vie

2021-03-24 22:21:53 145

原创 MySQL中group by与having

group bygroup by语句用来与聚合函数avg、count、min、max、sum等聚合函数一起使用,得到一列或多列的结果集。例如;我们有一个学生成绩表(sct),包含学号(sno)、课程(course)、分数(score)等多个列。我们想知道每个学生选了几门课,这时我们就需要联合使用group by和count.select sno,count(course) from sctgroup by sno;注意:因为聚合函数通过作用于一组数据,而只返回一个单个值,因此,在selec

2021-03-12 22:32:55 1159

原创 (a++) + (++a) + (++a)在Java和C++中的结果不一样

突然发现了一个神奇的事情:(a++) + (++a) + (++a)在Java和C++中的结果不一样?在java中public class Test { public static void main(String[] args) { int a = 0; int b = (a++) + (++a) + (++a); System.out.println(b); }}输出结果:在C++中#include <iost

2021-02-22 15:39:48 333

原创 前后端分离项目踩过的坑(SpringBoot+layui)

1、引言之前做过一个前后端分离的项目,也是我第一次做前后端分离的项目。作为一个新手,踩过很多坑,想在这里分享给大家,让大家少走弯路。2、开发环境前端:HBuilderX后端:IDEAJDK版本:1.83、配置文件项目目录pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org

2021-01-06 12:38:56 2958 6

原创 SSM框架整合

环境要求我的环境是:IDEAMySQL 5.7Tomcat 8.5Maven 3.2.5数据库创建存放书籍的数据库表:CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` INT NOT NULL AUTO_INCREMENT COMMENT '书id',`bookName` VARCHAR(100) NOT NUL.

2020-11-17 20:35:47 68

原创 激光样式(蓝桥杯)

x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?显然,如果只有3台机器,一共可以成5种样式,即:全都关上(sorry, 此时无声胜有声,这也算一种)开一台,共3种开两台,只1种30台就不好算了,国王只好请你帮忙了。要求提交一个整数,表示30台激光器能形成的样式种数。注意,只提交一个整数,不要填写任何多余的内容。分析深度优先搜索

2020-11-08 19:24:15 270 1

原创 对局匹配(蓝桥杯)

小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, … AN。小明想了解最多可能有多少名用户同时在线寻找对手,但是系统却一场对局都匹配不起来(任意两名用户积分差不等于K)?输入第一行包含两个个整数N和K。第二行包含N个整数A1, A2, … AN。对于3

2020-11-08 16:45:54 863 2

原创 01背包

问题描述  给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个.输入格式  输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。  以后N行每行两个数Wi和Vi,表示物品的重量和价值输出格式  输出1行,包含一个整数,表示最大价值。样例输入3 52 33 54 7样例输出8数据规模和约定  1<=N<=200,M<=5000.分析需要用动态规划来求解。设w[ i ]为第

2020-11-08 15:21:59 72

原创 测试次数(蓝桥杯)

x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。如果到了塔的最高层第n层扔没摔坏,则耐摔指数

2020-11-07 16:04:25 1986

转载 递增三元组(蓝桥杯)

给定三个整数数组A = [A1, A2, … AN],B = [B1, B2, … BN],C = [C1, C2, … CN],请你统计有多少个三元组(i, j, k) 满足:1 <= i, j, k <= NAi < Bj < Ck【输入格式】第一行包含一个整数N。第二行包含N个整数A1, A2, … AN。第三行包含N个整数B1, B2, … BN。第四行包含N个整数C1, C2, … CN。对于30%的数据,1 <= N <= 100

2020-11-07 13:53:31 125

原创 日志统计(蓝桥杯)

小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有N行。其中每一行的格式是:ts id表示在ts时刻编号id的帖子收到一个"赞"。现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是"热帖"。具体来说,如果存在某个时刻T满足该帖在[T, T+D)这段时间内(注意是左闭右开区间)收到不少于K个赞,该帖就曾是"热帖"。给定日志,请你帮助小明统计出所有曾是"热帖"的帖子编号。【输入格式】第一行包含三个整数N、D和K。

2020-11-07 13:44:23 437

原创 全球变暖(蓝桥杯)

你有一张某海域NxN像素的照片,".“表示海洋、”#"表示陆地,如下所示:其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。例如上图中的海域未来会变成如下样子:请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。【输入格式】第一行包含一个整数N。 (1 <= N <= 1000

2020-11-07 13:15:20 216

原创 数据库连接池

1、为什么使用数据库连接池用户每次请求都需要向数据库获得连接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、宕机。2、数据库连接池的基本概念数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配,管理

2020-11-02 18:19:43 149 1

原创 Collections工具类

1、作用操作Collection和Map的工具类。2、常用方法排序操作:(均为static方法)reverse(List):反转 List 中元素的顺序shuffle(List):对 List 集合元素进行随机排序sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处

2020-11-01 15:17:08 201

原创 Map接口总结

1、双列集合框架结构Map:双列数据,存储key-value对的数据 。(类似于高中的函数:y=f(x))HashMap:作为Map的主要实现类;线程不安全的,效率高。存储null的key和valueLinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。原因:在原有的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素。对于频繁的遍历操作,此类执行效率高于HashMap.TreeMap:保证按照添加的key-value对进行排序,实现排序遍历

2020-11-01 14:47:57 134

原创 Collection接口总结

1、单列集合框架结构Collection接口:单列集合,用来存储一个一个的对象List接口:存储有序的、可重复的数据。(“动态”数组)ArrayListLinkedListVectorSet接口:存储无序的、不可重复的数据。(数学中的集合)HashSetLinkedHashSetTreeSet对应图示:(实线是继承,虚线是实现)2、Collection接口中的常用方法add(Object obj); 向集合中添加元素addAll(Collection col

2020-10-31 21:12:20 513 3

原创 mysql数据库的使用(下)

1、索引MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。1.1、索引的分类主键索引 (Primary Key)唯一索引 (Unique)常规索引 (Index)全文索引 (FullText)1.2、主键索引主键 : 某一个属性组能唯一标识一条记录特点 :最常见的索引类型确保数据记录的唯一性确定特定数据记录在数据库中的位置1.3、唯一索引作用 : 避免同一个表中某数据列中的值重复

2020-10-22 22:29:11 113

原创 mysql数据库的使用(上)

1、什么是数据库数据库 ( DataBase , 简称DB )概念:数据库,顾名思义,是存放数据的仓库。严格地讲,数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。特点:永久存储、有组织、可共享。数据库类型:关系型数据库( SQL )MySQL , Oracle , SQL Server , SQLite , DB2 , …关系型数据库通过外键关联来建立表与表之间的关系非关系型数据库 ( NOSQL )Redis , MongoDB , …非关系型数据库通常指数

2020-10-21 22:42:17 302

原创 Spring与Mybatis整合

准备:1.导入相关jar包junit <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>mybatis <dependency>

2020-10-13 20:06:25 71

原创 初识AOP

1.什么是AOPAOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。(来自百科)2.AOP概念了解下面一些重要的AOP概念和术语。这些术语不是特定于Spring的。横

2020-10-09 16:35:11 77

原创 初识代理模式

学习Spring时,了解到AOP的底层机制就是动态代理!代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。为什么要用代理模式?中介隔离作用:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。开闭原则,增加功能:代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额外的功能来扩展委托类的功能,这样做我们只.

2020-10-08 18:11:54 56

原创 Spring中使用注解开发

一、说明注意:在spring4之后,想要使用注解形式,必须得要引入aop的包二、Bean的实现我们之前都是使用 bean 的标签进行bean注入,但是实际开发中,我们一般都会使用注解!配置扫描哪些包下的注解(在配置文件当中,还得要引入一个context约束)<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xml

2020-10-08 15:19:34 92

原创 Spring中bean的自动装配

自动装配是使用spring满足bean依赖的一种方法,满足依赖的过程中,spring会在应用上下文中为某个bean寻找其依赖的bean。Spring中bean有三种装配机制,分别是:在xml中显式配置;在java中显式配置;隐式的bean发现机制和自动装配。Spring的自动装配需要从两个角度来实现,或者说是两个操作:组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean。自动装配(autowiring):spring自动满足bean之间.

2020-10-07 20:38:12 126

原创 Spring中依赖注入方式

从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。一、构造器注入之前讲过,点击这里。二、set注入 (重点)注意:要求被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写 , 如果属性是boolean类型, 没有set方法 , 是 is。实体类:package com.liu.pojo;/** * @author liucong * @date 2020/10/6 - 16:4.

2020-10-07 12:06:15 139

原创 Spring中创建对象方式

1.通过无参构造方法来创建实体类package com.liu.pojo;/** * @author liucong * @date 2020/10/6 - 12:18 */public class User { private String name; public User(){ System.out.println("User的无参构造!"); } public String getName() { return na

2020-10-06 20:04:58 96

原创 Spring中IoC的理解

1.实例分析按照原来的方式写一段代码 .1.先写一个接口UserDaopackage com.liu.dao;/** * @author liucong * @date 2020/10/5 - 21:26 */public interface UserDao { void getUser();}2.UserDao的实现类package com.liu.dao;/** * @author liucong * @date 2020/10/5 - 21:27 */

2020-10-06 16:01:08 78

原创 初识Spring

1.简介Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。2.组成Spring 框架是一个分层架构,由 7 个定

2020-10-06 14:42:49 89

原创 MyBatis中复杂的结果映射

1.多对一的处理

2020-10-05 20:26:22 369

原创 MyBatis详细的执行流程

2020-10-05 19:08:37 92

原创 Lombok介绍

1.官网介绍Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging va

2020-10-04 22:00:17 244

原创 MyBatis中#与$的区别

默认情况下,使用 #{} 参数语法时,MyBatis 会创建 PreparedStatement 参数占位符,并通过占位符安全地设置参数(就像使用 ? 一样)。 这样做更安全,更迅速,通常也是首选做法。INSERT INTO user (name) VALUES (#{name}); <!--相当于-->INSERT INTO user (name) VALUES (?);${} 的作用是直接进行字符串替换INSERT INTO user (name) VALUES (${n.

2020-10-04 21:06:11 43

原创 MyBatis 所用的日志

我们在执行SQL的时候,要是能够在控制台输出 SQL 的话,是不是能提高排错效率?如果一个数据库相关的操作出现了问题,我们可以根据输出的SQL语句快速排查问题。对于以往的开发过程,我们会经常使用到debug模式来调节,跟踪我们的代码执行过程。但是Mybatis是基于接口、配置文件的源代码执行过程。因此,我们必须选择日志工具来作为我们开发、调节程序的工具。Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具:SLF4JLOG4JLOG4J2JDK_LOGGINGCOMM.

2020-10-03 16:41:56 212

原创 MyBatis项目的相关配置

注意:使用的开发环境是IDEA导入依赖在pom.xml中输入相关依赖信息<!--导入依赖--> <dependencies> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId.

2020-10-02 18:58:52 107

原创 什么是CAS

CAS(Compare And Swap/Set)比较并交换CAS算法的过程:它包含3个参数CAS(V,E,N)。V表示要更新的变量(内存值),E表示预期值(旧的),N表示新值。当且仅当V值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程做了更新,则当前线程什么都不做。最后,CAS返回当前V的真实值。CAS操作是抱着乐观的态度进行(乐观锁),它总是认为其他线程不会修改内存中的值。当多个线程同时使用CAS操作一个变量时,只有一个会胜出,并成功更新,其余均会失败。失败的线程.

2020-09-30 21:34:02 144

原创 顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如,如果输入如下矩阵:1    2    3   45    6    7   89   10  11  1213  14  15  16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。这道题不涉及复杂的数据结构和算法,但

2020-09-30 20:50:39 197

原创 数据库范式

使用关系型数据库,必须得遵守一定的规则,这些规则就是范式。1NF:第一范式,是基本的要求,即每个列都是不可分割的数据项。2NF:第二范式,要求实体属性要完全依赖于主键,不能依赖部分主键。3NF:第三范式,要求一个表中不能包含其他表中已包含的非主关键字信息。不严谨地说就是这个表只包含其他表的ID。一般来说,我们都会遵循第一和第二范式,但是为了性能,为了避免过多的表之间的连接,有时候会违反第三范式,冗余一些字段的信息。...

2020-09-29 19:08:03 55

原创 数据库事务

事务:是一系列的数据库操作(这些操作要么全做,要么全不做,是一个不可分割的工作单位),是数据库应用程序的基本逻辑单元。在SQL中,定义事务的语句一般有三条:begin transaction;commit;rollback;begin transaction 事务的开始。commit 提交事务,即将事务中所有对数据库的更新写回到磁盘上的物理数据库中。rollback 回滚,将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。事务的ACID特性原子性(A.

2020-09-27 11:19:10 250

原创 Java多线程实现

三种创建方式继承Thread类实现Runnable接口实现Callable接口继承Thread类定义类继承Thread。重写run()方法,编写线程执行体。创建线程对象,调用start()方法启动线程。实现Runnable接口定义类实现Runnable接口。重写run()方法,编写线程执行体。创建线程对象,将自己作为参数传入,调用start()方法启动线程。package com.liu.end;import java.util.concurrent.Callable

2020-09-21 21:11:52 193

空空如也

空空如也

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

TA关注的人

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