自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rick的博客

学习笔记

  • 博客(105)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringBoot拦截器实现

创建一个Interceptor类实现HandlerInterceptor接口,重写preHandle(),postHandle(),afterCompletion() 三个方法如下代码,我们就创建了一个Spring的拦截器/***/@Component/*** 在controller调用之前执行*/@Overridelogger.info(request.getRequestURI()+"preHandle开始执行");/*** 在controller调用中执行*/

2023-10-11 11:04:53 122

原创 日期处理的迭代过程以及使用

三代日期是如何一步一步优化的。

2023-05-16 09:59:53 375

原创 遍历HashMap的5种方式

使用 Iterator 遍历 HashMap EntrySet使用 Iterator 遍历 HashMap KeySet使用For-each 循环迭代 HashMap使用 Lambda 表达式遍历 HashMap使用 Stream API遍历 HashMap1.使用 Iterator 遍历 HashMap EntrySetpublic class IterateHashMapExample { public static void main(String[] args) { .

2022-04-18 16:55:53 681

原创 MySQL的COUNT语句暗藏玄机

前言:关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐。不信的话请尝试回答下以下问题:1、COUNT有几种用法?2、COUNT(字段名)和COUNT( * )的查询结果有什么不同?3、COUNT(1)和COUNT( * )之间有什么不同?4、COUNT(1)和COUNT( * )之间的效率哪个更高?5、为什么《阿里巴巴Java开发手册》建议使用COUNT(

2021-02-24 17:15:26 221

原创 List和Set详解-面试必备

List和Set详解1 ArrayArray(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的,但是要删除数据却是开销很大,因为这需要重排数组中的所有数据。数组初始化必须指定初始化的长度, 否则报错2 ListList—是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式,它继承Collection。List有两个重要的实现类:ArrayList和LinkedListList是一个接口,不可以实例化, 不能写成如下:List<I

2021-01-31 17:46:52 437 1

原创 SpringMVC拦截器【监听器、过滤器、拦截器的执行过程和对比】

SpringMVC拦截器1、监听器、过滤器和拦截器对比Servlet:处理Request请求和Response响应过滤器(Filter):对Request请求起到过滤的作用,作用在Servlet之前,如果配置为/*可以对所 有的资源访问(servlet、js/css静态资源等)进⾏过滤处理监听器(Listener):实现了javax.servlet.ServletContextListener 接口的服务器端组件,它随 Web应用的启动而启动,只初始化⼀次,然后会⼀直运⾏监视,随Web应用的

2020-11-25 09:48:51 563

原创 String a =new String(“abc”)创建了几个对象

String a =new String(“abc”) 实际上是创建了两个对象(假设之前String的常量池中没有创建任何对象),一个是“abc”,一个是new String()。“abc”创建后就会放入常量池中(下次创建 String对象时先查找常量池 有需要的就使用, 没有就重新创建并存入常量池),如果常量池中有的话,则就创建了一个new的对象,每new一次就创建一个对象。而String a=new String(“abc”)这是在堆里面创建了一个空白对象 ,并将a初始化(如图),在去查找常量池是

2020-11-21 14:08:11 7986

原创 集合的遍历方式一篇搞定

#集合的遍历方式List是一个接口不能实例化,只能实例化其子类 如 List lists = new ArrayList(); (多态的体现)判断List下是否存在某个元素 list.indexOf("")判断map下是否存在key map.containsKey("")判断map下是否存在Value map.containsValue(“”)List\Set集合有好多种,遍历方式基本相同遍历集合有三种方式:1.转数组2.Iterator迭代器3.增强for循环需要注意的是:L

2020-11-12 15:25:26 518 4

原创 30条书写高质量SQL的建议

30条书写高质量SQL的建议##1、查询 SQL 尽量不要使用 select *,而是 select 具体字段反例子:select * from employee; 正例子:select id,name from employee; 理由如下:只取需要的字段,节省资源、减少网络开销。select * 进行查询时,很可能就不会使用到覆盖索引了,就会造成回表查询。2、如果知道查询结果只有一条或者只要最大/最小一条记录,建议用 limit 1正例:select id,na

2020-11-12 15:23:21 108

原创 RabbitMQ 实战教程

RabbitMQ 实战教程1.MQ引言1.1 什么是MQMQ(Message Quene) : 翻译为 消息队列,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。1.2 MQ有哪些当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、

2020-11-12 15:21:04 202

原创 一招搞定设计模式-动态代理模式(实例3)

动态代理模式(实例3)JDK动态代理实例:让中介帮忙买车子和买房子买车和买房public interface IBuy { void buyHouse(); void buyCar();}然后实现接口public class BuyImpl implements IBuy { @Override public void buyHouse() { System.out.println("我要买房"); } @Override

2020-11-12 15:19:45 66

原创 一招搞定设计模式-动态代理模式(实例2)

动态代理模式(实例2)我们来谈谈什么是动态代理。假设这样一个场景:你们是一家软件公司,你是一位软件工程师。现在又客户带着一个需求来找你们公司做项目。显然不是找你直接谈,而是去找商务去谈,此时客户就会认为商务就代表你们公司。然后当客户与商务交流的差不多了,商务就会来找你接洽。显然商务与工程师之间是代理与被代理的关系。Spring中通常用JDK和CGLIB。Mybatis中还是用了javassistJDK与CGLIBjdk动态代理中,我们必须使用接口。而cglib则不需要。因为在JDK动态代

2020-11-12 15:19:16 68

原创 一招搞定设计模式-动态代理模式(实例1)

动态代理模式(实例1)JDK动态代理代理模式( Proxy Pattern):给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式的英文叫做 Proxy,它是一种对象结构型模式,代理模式分为静态代理和动态代理,我们来介绍动态代举例(1)创建一个抽象类, Person接口,使其拥有一个没有返回值的 doSomething方法。/** * 抽象类人 */public interface Person { void doSomething();}(2)创建一个名为Bob的

2020-11-12 15:16:03 98

原创 一招搞定设计模式-构建者模式

构建者模式Builder模式的定义是“将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。”它属于创建类模式,一般来说,如果一个对象的构建比较复杂,超出了构造函数所能包含的范围,就可以使用工厂模式和 Builder模式,相对于工厂模式会产出一个完整的产品, Builder应用于更加复杂的对象的构建,甚至只会构建产品的一个部分,直白来说,就是使用多个简单的对象一步一步构建成一个复杂的对象例子:使用构建者设计模式来生产 computer主要步骤:将需要构建的目标类分

2020-11-12 15:15:29 70

原创 一招搞定设计模式-工厂模式

工厂模式简单工厂在 Mybatis中比如 SqlSession Factory使用的是工厂模式,该工厂没有那么复杂的逻辑,是一个简单工厂模式。简单工厂模式( Simple Factory Pattern):又称为静态工厂方法( (Static Factory Method模式,它属于创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类例子:生产电脑假设有一个电脑的代工生产商,它目前已经可以代工生产联想

2020-11-12 15:15:05 111

原创 一招搞定设计模式-单例模式

单例模式单例模式六种常见形式* 饿汉式:直接创建对象,不存在现场安全问题。直接实例化饿汉式(简洁直观)/** * 饿汉式 * 直接创建实例对象,不管你是否需要这个对象 * * (1)构造器私有化 * (2)自行创建,并且用静态变量保存 * (3)向外提供这个实例 * (4)强调这是一个单例,并用final修饰 */public class Singleton1 { public static final Singleton1 INSTANCE = new Si

2020-11-12 15:14:19 95

原创 一招读懂三次握手与四次挥手

三次握手与四次挥手ACK为1表示确认号有效,为0表示不含确认号信息,忽略确认号字段。服务端进入listen监听状态(第一次握手)客户端向服务端发送链接请求报文,同步序号SYN = 1,初始化序列号seq=x 。客户端进入同步、已发送状态。消耗掉一个序号(第二次握手)服务器接收到报文请求之后,如果同意链接则发出确认报文ACK = 1,同步序号SYN = 1,初始化序号seq = y,ack=x+1(因为第一次握手消耗掉了一个序号所以要+1)。服务器进入同步收到的状态。需要消耗一个序号。

2020-10-20 10:39:06 94

原创 单例模式model

单例模式六种常见形式饿汉式:直接创建对象,不存在现场安全问题。直接实例化饿汉式(简洁直观)/** * 饿汉式 * 直接创建实例对象,不管你是否需要这个对象 * * (1)构造器私有化 * (2)自行创建,并且用静态变量保存 * (3)向外提供这个实例 * (4)强调这是一个单例,并用final修饰 */public class Singleton1 { public static final Singleton1 INSTANCE = new Singlet

2020-09-29 11:21:23 177

原创 动态代理模式model(JDK)

代理模式( Proxy Pattern):给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式的英文叫做 Proxy,它是一种对象结构型模式,代理模式分为静态代理和动态代理,我们来介绍动态代举例(1)创建一个抽象类, Person接口,使其拥有一个没有返回值的 doSomething方法。/** * 抽象类人 */public interface Person { void doSomething();}(2)创建一个名为Bob的 Person接口的实现类,使其实现 doso

2020-09-26 21:14:33 127

原创 工厂模式model

在 Mybatis中比如 SqlSession Factory使用的是工厂模式,该工厂没有那么复杂的逻辑,是一个简单工厂模式。简单工厂模式( Simple Factory Pattern):又称为静态工厂方法( (Static Factory Method模式,它属于创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类例子:生产电脑假设有一个电脑的代工生产商,它目前已经可以代工生产联想电脑了,随着业务的拓

2020-09-26 20:57:01 161

原创 Builder构建者模式model

Builder模式的定义是“将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。”它属于创建类模式,一般来说,如果一个对象的构建比较复杂,超出了构造函数所能包含的范围,就可以使用工厂模式和 Builder模式,相对于工厂模式会产出一个完整的产品, Builder应用于更加复杂的对象的构建,甚至只会构建产品的一个部分,直白来说,就是使用多个简单的对象一步一步构建成一个复杂的对象例子:使用构建者设计模式来生产 computer主要步骤:将需要构建的目标类分成多个部件(

2020-09-26 20:07:45 178

原创 自定义Mybatis持久层框架

自定义持久层框架1.回顾JDBC创建自定义持久层框架前,让我们先来回顾一下,JDBC的操作:public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { //加载数据库驱动

2020-07-14 16:01:47 322

原创 Java导出Excel(项目实战Demo)

Java导出Excel(项目实战Demo)Controller 层/** * 考勤机刷卡明细导出Excel * * @throws Exception */// @RequiresPermissions("report:ExportToExcel") @RequestMapping(value = "/AttendMachineCardD...

2020-01-02 15:49:22 210

原创 IO流分类

2020-01-02 15:32:12 103

原创 Java开发程序员必须要学会的linux命令总结

查找文件find / -name filename.txt 根据名称查找/目录下的filename.txt文件。find . -name “*.xml” 递归查找所有的xml文件find . -name “*” |xargs grep “hello” 递归查找所有文件内容中包含hello world的xml文件grep -H ‘spring’ *.xml 查找所以有的包含s...

2020-01-02 14:43:25 152

原创 Vue父组件向子组件传值

父组件向子组件传值组件实例定义方式,注意:一定要使用props属性来定义父组件传递过来的数据<script> // 创建 Vue 实例,得到 ViewModel var vm = new Vue({ el: '#app', data: { msg: '这是父组件中的消息' }, components...

2019-08-30 10:19:52 199

原创 Spring的事务管理

前面有一篇文章专门介绍事务的安全性https://blog.csdn.net/weixin_44718300/article/details/88937088接下来再复习一边 什么是事务: 逻辑上的一组操作,组成这组操作的各个单元,要么全都成功,要么全都失败。 事务的特性: 原子性:事务不可分割 一致性:事务执行前后数据完整性保持一致 隔离性:一个事务的...

2019-08-26 16:20:21 82

原创 C3P0和DBCP的区别

2019-05-12 21:57:41 622

原创 Spring的JDBC的使用(配置和CRUD)

导包:Spring的JDBC模板的使用一、默认连接池创建数据库create database spring4;use spring4;create table account(id int primary key auto_increment,name varchar(20),money double);使用JDBC模板保存数据创建一个测试类pa...

2019-05-12 20:38:07 488

原创 Spring的AOP开发(基于ApsectJ的注解)

创建项目,导包编写目标类并配置 创建OrderDaopackage com.rick.aop.demo1;public class OrderDao { public void save() { System.out.println("保存订单。。。。"); } public void update() { System.out.println("修改订单...

2019-05-12 16:30:38 191

原创 Spring的AOP开发(基于AspectJ的XML方式)

Spring的AOP的简介:AOP思想最早是由AOP联盟组织提出的。Spring是使用这种思想最好的框架Spring的AOP有自己实现的方式(非常繁琐)。 Aspect是一个AOP的框架, Spring引入 Aspect作为自身AOP的开发。Spring两套AOP开发方式 ◆ Spring传统方式(弃用)。 ◆ Spring基于 Aspect的AoP的开发(使...

2019-05-12 10:49:39 327

原创 【动态代理】底层实现的小例

我们来谈谈什么是动态代理。假设这样一个场景:你们是一家软件公司,你是一位软件工程师。现在又客户带着一个需求来找你们公司做项目。显然不是找你直接谈,而是去找商务去谈,此时客户就会认为商务就代表你们公司。然后当客户与商务交流的差不多了,商务就会来找你接洽。显然商务与工程师之间是代理与被代理的关系。Spring中通常用JDK和CGLIB。Mybatis中还是用了javassistJ...

2019-05-11 17:18:35 197

原创 Spring-IOC(基于注解)

1.Spring的Bean管理:(注解方式)1.1 创建web项目,引入Spring的开发包:注:在Spring的注解的AOP中需要引入spring-aop的jar包。1.2引入相关配置文件:log4j.propertiesapplicationContext.xml引入约束: 位置:spring-framework-4.2.4.RELEA...

2019-05-10 22:01:05 151

原创 Spring属性注入

1.构造方法的方式的属性注入2.Set方法的方式的属性注入 (1)、普通属性 (2)、对象属性3.P名称空间的属性注入(Spring2.5以后)通过引入p名称空间完成属性的注入: 写法:普通属性p:属性名=”值”对象属性p:属性名-ref=”值” P名称空间的引入...

2019-05-10 19:22:09 203

原创 Spring-IOC(基于XML配置)

什么是IOC?IOC: Inversion of Control(控制反转)。 控制反转:将对象的创建权反转给(交给)Spring。在使用Spring框架之后,对象的实例不再由调用者来创建,而 是由Spring容器来创建,Spring容器会负责控制程序之间的关 系,而不是由调用者的程序代码直接控制。这样,控制权由应 用代码转移到了Spring容器,...

2019-05-10 16:48:17 203

原创 【静态代理】访问其他类的方法的方法(继承/聚合)

用 计算 方法中 代码块的 运行时间 举例1.创建一个坦克移动的接口public interface Movieable {void movie();}2.第一种方法直接计算public class Tank implements Movieable{ @Override public void movie() { //记录时间...

2019-05-09 23:19:22 171

原创 自动登录

结构:1.UserBean 2.utils 3.login.jsp 4.Dao/DaoImpl 5.loginServlet/** * Servlet implementation class LoginServlet */public class LoginServlet extends HttpServlet { protected void doGet(HttpS...

2019-04-08 20:36:09 248

原创 Filter简介

Filter过滤器 , 其实就是对客户端发出来的请求进行过滤。 浏览器发出, 然后服务器派servlet处理。 在中间就可以过滤, 其实过滤器起到的是拦截的作用。作用对一些敏感词汇进行过滤统一设置编码自动登录…如何使用Filter定义一个类, 实现Filter public class FilterDemo implements Filter { p...

2019-04-08 15:41:58 150

原创 Listener(Web监听器、活化、钝化)

Web监听器总共有8个 划分成三种类型定义一个类,实现接口注册 | 配置监听器监听三个作用域创建和销毁request —httpServletRequestsession —httpSessionaapplication — ServletContextServletContextListenerservletcontext创建:启动服务器的时候se...

2019-04-07 18:29:51 410

原创 接口回调

接口回调需求:A在执行循环,当循环到5的时候, 通知B。事先先把一个对象传递给 A , 当A 执行到5的时候,通过这个对象,来调用B中的方法。 但是注意,不是直接传递B的实例,而是传递一个接口的实例过去。1.新建A.javapackage com.itheima.test;/** * 假设这是1988年写的 * @author xiaomi * */public ...

2019-04-07 12:13:37 115

MVC学生管理系统代码

其中用到MVC,数据库连接池,DBUtil,通用增删改等手段。其中还有模糊查询等!可以称得上非常经典的模板

2019-04-05

使用Mapper接口方式整合MyBatis-Spring图书管理系统源代码

//跳转到修改图书信息页面 @RequestMapping("/toUserEdit") public String toUserEdit(Integer user_id, Model model){ //放进model User user = userService.findUserById(user_id); model.addAttribute("user", user); // model.addAttribute("user_id",user_id); //到视图:jsp页面 return "/jsp/user/useredit"; } //修改图书信息 @RequestMapping("/userEdit") public String userEdit(User user, BindingResult bindingResult,Model model){ if(bindingResult.hasErrors()){ err(bindingResult,model); return "/jsp/user/useredit"; }else { userService.updateUser(user); return "redirect:toUserList"; } } //删除 @RequestMapping("/userDelete") public String userDelete(Integer user_id,Model model) { userService.deleteUser(user_id); return "redirect:toUserList"; }

2019-03-04

空空如也

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

TA关注的人

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