自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis中#{}和${}的使用技巧和建议

#{} 和 ${} 在使用中的技巧和建议(1)不论是单个参数,还是多个参数,一律都建议使用注解@Param("")(2)能用 #{} 的地方就用 #{},不用或少用 ${}(3)表名作参数时,必须用 ${}。如:select * from ${tableName}(4)order by 时,必须用 ${}。如:select * from t_user order by ${columnName}(5)使用 ${} 时,要注意何时加或不加单引号,即 ${} 和 '${}'...

2021-07-15 13:22:41 228

原创 存储过程的优缺点

有同事问及不用存储过程的理由,我想了一下,对存储过程做了如下总结。本人经验和水平有限,总结有所偏颇,还请大家纠察。优点1.在生产环境下,可以通过直接修改存储过程的方式修改业务逻辑(或bug),而不用重启服务器。但这一点便利被许多人滥用了。有人直接就在正式服务器上修改存储过程,而没有经过完整的测试,后果非常严重。2.执行速度快。存储过程经过编译之后会比单独一条一条执行要快。但这个效率真是没太大影响。如果是要做大数据量的导入、同步,我们可以用其它手段。3.减少网络传输。存储过程直接就在.

2021-05-06 16:06:26 2417

原创 Ubuntu18.04 安装MySQL5.7

Ubuntu18.04 安装MySQL环境信息:OS:Ubuntu18.04MySQL: 5.7.221.安装MySQL在Ubuntu中,默认情况下,只有最新版本的MySQL包含在APT软件包存储库中,要安装它,只需更新服务器上的包索引并安装默认包apt-get。#命令1sudo apt-get update#命令2sudo apt-get install mysql-server#命令3Y2.配置MySQLsudo mysql_secure_installation(

2021-05-06 15:09:31 277

原创 2021年春招Java后端开发面试知识点总结!

前言转眼间2020年过去已经有一段时间了,相信大家在2020年年末的秋招已经拿到了自己满意的offer。有没有拿到的也不用着急,小编在这里为大家整理了一份2021春招java后端开发面试知识点总结,大家只要把这份知识点背熟记牢,突击一个面试还是没有什么问题的,这份知识点包括Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等,满满的干货给大家放在下面了!语言特性Java 语言的优点?① 平台无关性,摆脱硬件束缚,“一次编写

2021-01-20 18:38:10 199

原创 Ubuntu中apt与apt-get命令的区别

Ubuntu 16.04 发布时,一个引人注目的新特性便是 apt 命令的引入。其实早在 2014 年,apt 命令就已经发布了第一个稳定版,只是直到 2016 年的 Ubuntu 16.04 系统发布时才开始引人关注。随着 apt install package 命令的使用频率和普遍性逐步超过 apt-get install package,越来越多的其它 Linux 发行版也开始遵循 Ubuntu 的脚步,开始鼓励用户使用 apt 而不是 apt-get。那么,apt-get 与 apt 命令之

2020-12-19 17:23:32 131 1

原创 MyBatisPlus分页查询

话不多说直接上代码1.配置分页类package com.youyou.address.config; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import org.mybatis.spring.annotation.MapperScan;import org.springframework.context.annotation.Bean;import org.springframewo

2020-11-05 15:32:12 224

原创 缓存穿透、缓存击穿、缓存雪崩区别和解决方案

一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0...

2020-11-03 21:58:39 109

原创 MySQL 1130错误,无法远程连接

授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;FLUSH PRIVILEGES;如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码GRANT ALL PRIVILEGES ON *....

2020-11-03 21:53:17 356

原创 IDEA不建议在没有服务器身份验证的情况下建立SSL连接

近期在跑一个项目的时候Idea的日志窗口出现了下面的警告,该警告对运行测试的结果没有影响,但是始终让人不舒服,也不知道有没有隐患,于是对该问题进行了了解和处理,警告内容如下:;Thu Dec 20 12:50:09 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.

2020-11-03 21:47:23 1027

原创 MySQL语句练习

实验bai一练习1、请查询表DEPT中所有部门的du情况。select * from dept;练习2、查zhi询表DEPT中的部门号、部门名称两个字段的所有信息。select deptno,dname from dept;练习3、请从表EMP中查询10号部门工作的雇员姓名和工资。select ename,sal from emp where deptno=10;练习4、请从表EMP中查找工种是职员CLERK或经理MANAGER的雇员姓名、工资。select ename,sal from e

2020-09-22 17:11:39 515

原创 悲观锁与乐观锁

何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上

2020-09-15 22:39:02 69

原创 layui的laydate控件的常用属性

目前使用的layui版,没有单独使用laydate。官网上的例子是每个属性单独设置的,我稍微整合了一下常用属性。引入了css和js以后//初始化时间layui.use('laydate', function() { //初始化layui var laydate = layui.laydate; //执行一个laydate实例 laydate.render({ elem: '.date' //指定元素 元素选择器 , typ.

2020-07-11 20:27:24 1793

原创 从浏览器输入URL到页面解析的全过程

1.输入网址输入要访问的网址,即URL2.缓存解析浏览器获取URL后,先去缓存中查找资源,从浏览器缓存-系统缓存-路由器缓存中查看;如果有就从缓存中显示界面,不再发送请求;如果没有,则发送http请求;3.域名解析发现缓存中没有资源,发送http请求;在发送http请求之前,需要进行DNS解析(域名解析);DNS解析:域名到IP地址的转换过程,域名的解析工作由DNS服务器完成,解析后可以获取域名相应的IP地址;4.tcp连接,三次握手在域名解析后,浏览器向服务器发起了http请求

2020-05-10 23:45:20 424

原创 Java设计模式面试题

1.请列举出在 JDK 中几个常用的设计模式? 单例模式(Singleton pattern)用于 Runtime,Calendar 和其他的一些类中。工厂模式 (Factory pattern)被用于各种不可变的类如 Boolean,像 Boolean.valueOf,观察者模式 (Observer pattern)被用于 Swing 和很多的事件监听中。装饰器设计模式(Decorator design pattern)被用于多个 Java IO 类中。 2.什么是设计模式?你是否

2020-05-09 18:58:58 332

原创 深入理解TCP三握四挥

一、三次握手首先来看一张图最初,客户机A与服务器B的TCP进程都处于CLOSED状态。然后由服务器B先创建TCB(传输控制块),进入到LISTEN状态,准备随时响应客户请求下面开始三握:第一次握手  A的TCP进程创建TCB(传输控制块),然后向B发出连接请求报文段。段首部中的 同步位SYN=1,同时选择一个初始序列号seq=x;(SYN报文段不能携带数据,但需要消耗一个序列号)这时客户端A进入到SYN-SENT(同步已发送)状态。第二次握手  B收到连接请...

2020-05-08 22:33:01 124

原创 六分钟掌握“鸡尾酒排序”(Java)

鸡尾酒排序是一种定向的冒泡排序(又叫快乐小时排序),排序是 从低到高 再 从高到低 的反复。而冒泡排序是从低到高的排序。先来看看冒泡排序举个栗子:8个数组成一个无序数列:3、2、4、5、6、7、1、8,希望从小到大排序第一轮结果( 3 和 2 交换,1 和 8 交换)第二轮结果( 7 和 1 交换)第三轮结果( 6 和 1 交换)接下来(5和1交换,4和...

2020-05-08 00:13:01 201

原创 三分钟掌握“冒泡排序”(Java)

一.冒泡排序简介比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。动态...

2020-05-07 23:17:21 129

原创 十分钟理清“快速排序”(Java)

高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放...

2020-05-07 22:26:40 107

原创 三分钟带你了解哈希表

散列表是一种使用非常广泛的数据结构,可能也是最有用的数据结构。在我接触散列表之前我就已经开始使用它了,只是当时知识不够,没有意识到。好了,废话不多说,进入正题吧。先举个栗子。假如你面前有一本厚厚的电话簿,里面记载了大量的姓名和电话号码。你的工作就是从其中快速找到某一个人的电话号码。(当然现实不会有这么无聊的工作的)可能你会想到使用二分查找,但是这依然需要不少的时间。而为了追求效率,我们希望的是...

2020-05-07 02:47:48 110

原创 SQL中外键的作用与使用场景

外键的作用外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。测试用例:我们先建有外键关联的两张表然后在course表中插入一条数据INSERT INTO tb_course (StuId, CourseName, Score) VALUES (1, 'java基础', 80)很显然,他会报错原因就是Student表中并没有主键Id为1的这条记录...

2020-05-06 18:14:51 2180 1

原创 MySQL索引是什么东西?

1.索引是什么东西?索引就是一个数据结构,我们把表中的记录用一个适合高效查找的数据结构来表示,目的就是让查询变得更高效。2.它到底怎么运作的?这个问题就说来话长了,且听我慢慢道来:在mysql中使用最广泛的数据引擎是InnoDB 引擎,它里面用的是 B+ 树索引。我们重点分析一下这个索引的原理:要想理解B+树索引要先从 二叉查找树,平衡二叉树和 B 树说起因为B+树索引就是...

2020-05-06 17:47:51 237 1

原创 Java面试必看(三)

简单介绍下Java的跨平台原理 不同的操作系统的操作指令集不同,所以做程序开发的时候需要根据不同的操作系统开发程序。比如想要程序支持MacOS、Windows和Linux就要开发三套不同的程序代码。这会导致开发成本成倍提升,所以很多程序都只开发了windows版本。这是相对于桌面程序来说的,如果是WEB应用程序就没有这个烦恼,这也是WEB开发这么流行的原因。 Sun公司开发了适用于不...

2020-05-05 22:48:05 109

原创 Java面试必看(二)

1、面向对象的特征有哪些方面?- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。- 继承:继承是从已有类得到继承信息创建新类的过程。提供继承的类叫父类(超类、基类)、得到继承的类叫子类(派生类)。- 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。可...

2020-05-05 22:47:41 186

原创 Java面试必看(一)

1、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。java的跨平台不是java源程序的跨平台 ,如果是这样,那么所以语言都是跨平台的, java源程序先经过javac编译器编译成二进制的.class字节码文件(java的跨平台指的就是.class字节码文件的跨平台,.class字节码文件是与平台无关的),.clas...

2020-05-05 22:45:26 293

原创 同步和异步的区别哟

举个栗子:普通B/S模式(同步)AJAX技术(异步)同步:提交请求->等待服务器处理->处理完毕返回这个期间客户端浏览器不能干任何事异步:请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。异步就是你叫我,然后自己去吃饭,我得到消息...

2020-05-02 17:15:43 91

原创 Http协议实现的原理机制

(1)域名解析(2)三次握手(3)发起Http请求(4)响应Http请求并得到HTML代码(5)浏览器解析HTML代码(6)浏览器对页面进行渲染呈现给用户

2020-05-02 17:08:14 215

原创 TCP报文的标志字段

在TCP报文的报头中,有几个标志字段:1、 SYN:同步连接序号,TCP SYN报文就是把这个标志设置为1,来请求建立连接;2、 ACK:请求/应答状态。0为请求,1为应答;3、 FIN:结束连线。如果FIN为0是结束连线请求,FIN为1表示结束连线;4、 RST:连线复位,首先断开连接,然后重建;5、 PSH:通知协议栈尽快把TCP数据提交给上层程序处理。...

2020-05-02 16:15:26 1428

原创 Java中==号与equals()之间那些不为人知的故事

 1)对于==,比较的是值是否相等 如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;    如果作用于引用类型的变量,则比较的是所指向的对象的地址  2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象    如果没有对equals方法进行重写,则比较...

2020-05-01 18:13:36 87

原创 JDK和JRE的区别是什么

JRE: Java Runtime EnvironmentJDK:Java Development KitJRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JD...

2020-05-01 18:02:59 182 1

原创 数据库表字段驼峰式命名导致使用Mybatis-Plus查询时某些字段为null

在我们使用mybatis plus 时, mybatis plus 可以帮我们自动封装我们的实体类用来查询添加,当我们遇见我们的实体类名与我们的表字段均为驼峰写法时:例如实体类中有一个字段为userName,而我们在数据库的字段名也是 userName默认的驼峰式编码在mybatis plus 则会默认把驼峰式编码写成user_name,这种下划线格式的字段这时你会发现你的代码会出...

2020-05-01 18:02:50 10895 3

转载 实用工具与学习网站

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。原文链接:https://blog.csdn.net/m0_37907797/article/details/102781027一、PD...

2020-05-01 18:02:34 384

原创 IDEA竖选文本、竖向选择、横向纵向选择文本代码

在使用Idea的时候,可能需要在相同类型的文字中增加数据,所以Idea提供一种列式选择方式,提高开发的效率。如果需要使用,我们可以选中代码,右键单击,在弹出的菜单中选中【Column Selection Mode】列选中模式使用快捷键 alt +shift+insert 可以选中需要修改的代码 使用ctr + 左右箭头 可以左右移动,只单独使用左右箭头时 可在某一字符间切换 对...

2020-05-01 18:02:28 2174

原创 Jar包和War包的介绍和区别

war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块。而jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的。它们都是压缩的包,拿Tomcat来说,将war文件包放置它的\webapps\目录下,启动Tomcat,这个包可以自动进行解压,也就是你的web目录,相当于发布了。简单来说,war包是JavaWeb程序打的包,w...

2020-05-01 18:02:19 633

原创 Java中的String,StringBuilder,StringBuffer三者的区别

首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String  String最慢的原因:  String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。以下面一段代码为例:1 S...

2020-05-01 18:02:10 65

原创 Java简易的Get与Post请求工具类

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.util.List;imp...

2020-05-01 18:01:56 316

空空如也

空空如也

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

TA关注的人

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