自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 手把手带你阅读Mybatis源码-----缓存篇

何谓缓存?虽然这篇说的是MyBatis的缓存,但是我希望正在学习计算机的小伙伴即使还没有使用过MyBatis框架也能看明白今天这篇文章。缓存是什么?我来说说个人的理解,最后再上比较官方的概念。缓存(Cache),顾名思义,有临时存储的意思。计算机中的缓存,我们可以直接理解为,存储在内存中的数据的容器,这与物理存储是有差别的,由于内存的读写速度比物理存储高出几个数量级,所以程序直接从内存中取数据和从物理硬盘中取数据的效率是不同的,所以有一些经常需要读取的数据,设计师们通常会将其放在缓存中,以便于程序对其

2020-11-13 22:36:18 169 1

原创 Mybatis源码简单解读---执行

~

2020-11-13 22:21:21 142

原创 Mybatis源码简单解读----构建

作为新手简单解读mybatis源码是如何运转的,这以部分只要从构建mybatis的配置来分析,mybatis在解析配置文件的时候做了什么事

2020-11-13 22:14:14 176

转载 SpringMVC学习之08 整合SSM框架

简单SSM项目整合环境要求环境:IDEAMySQL 5.7.19Tomcat 9Maven 3.6要求:需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;数据库环境创建一个存放书籍数据的数据库表CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` INT(10)

2020-11-03 17:08:01 83

转载 SpringMVC学习之07 拦截器和文件上传下载

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

2020-11-03 17:05:08 129

转载 SpringMVC学习之06 JSON交互处理

JSON交互处理什么是JSON?JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等

2020-11-03 16:59:52 77

转载 SpringMVC学习之06 结果跳转和数据处理

结果跳转方式ModelAndView设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .页面 : {视图解析器前缀} + viewName +{视图解析器后缀}<!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> &l

2020-11-03 16:55:24 118

转载 SpringMVC学习之05 Controller控制器和RestFul风格

实现Controller接口Controller是一个接口,在org.springframework.web.servlet.mvc包下,接口中只有一个方法;//实现该接口的类获得控制器功能public interface Controller { //处理请求且返回一个模型与视图对象 ModelAndView handleRequest(HttpServletRequest var1, HttpServletResponsevar2) throws Exception;}测试

2020-11-03 16:53:29 147

原创 SpringMVC学习之04 XML和java配置方式配置DispatcherServlet并整合SpringIoC容器【详细】

基于XML配置DispatcherServlet并整合Spring IoC容器Spring MVC的核心就是前端控制器DispatcherServlet,它显然是一个Servlet,需要进行配置以便由Servlet容器(比如Tomcat)来加载并管理。那么如何配置DispatcherServlet让Servlet容器加载呢?显然不能在其源码中加上注解,因此只能使用部署描述符web.xml了。不过,Spring MVC也提供了一种基于Java来配置DispatcherServlet的方式,实际上底层是基

2020-11-03 16:45:10 298

原创 SpringMVC学习之03 HelloSpringMVC【简单配置】

创建第一个SpringMVC项目配置版提到Spring MVC依赖于Spring IoC容器来生成、配置和管理处理请求的各个步骤中需要使用的具体组件Bean,所以,要使用Spring MVC就必须首先配置好Srping IoC容器。我们也已经知道Spring MVC的核心就是前端控制器DispatcherServlet,它显然是一个Servlet,需要进行配置以便由Servlet容器(比如Tomcat)来加载并管理。那么如何配置DispatcherServlet让Servlet容器加载呢?显然不能在

2020-11-03 16:33:40 726

原创 SpringMVC学习之02 SpringMVC介绍和SpringMVC逻辑处理流程

什么是SpringMVC概述Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。查看官方文档:SpringMVC官方文档链接.我们为什么要学习SpringMVC呢?Spring MVC的特点:轻量级,简单易学高效 , 基于请求响应的MVC框架与Spring兼容性好,无缝结合约定优于配置功能强大:RESTful、数据验证、格式化、本地化、主题等简洁灵活Spring的web框架围绕DispatcherServlet [ 调

2020-11-03 16:00:39 111

原创 SpringMVC学习之01回顾MVC架构和Servlet

前序:该系列笔记参考文档和书籍:《Spring实战(第四版)》<bilibi狂神说视频>SpringMVC官方文档回顾MVC架构什么是mvc全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输.

2020-11-03 15:27:43 120

原创 Spring学习之10声明式事务

声明式事务回顾事务事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎!事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。事务四个属性ACID原子性(atomicity)事务是原子性操作,由一系列动作组成,事务的原子性确保动作要么全部完成,要么完全不起作用一致性(consistency)一旦所有事务动作完成,事务就要被提交。数据和资源处于一种满足

2020-11-03 15:03:59 55

原创 Spring学习之09整合MyBatis

整合Mybatis步骤1、导入相关jar包junit<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependency>mybatis<dependency> <groupId>org.mybatis&lt

2020-11-02 22:34:10 59

原创 Spring学习之08AOP使用

AOPaop介绍AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP 即 Aspect Oriented Program 面向切面编程所谓的核心业务,比如登陆

2020-11-02 22:24:57 152

原创 Spring学习之07动态/静态代理模式

代理模式Spring的aop底层就是代理模式静态代理动态代理代理模式的导图:​ 可以看出,代理模式就是客户端(Client)并不直接调用真实对象,而是调用代理对象,通过代理对象调用真实对象,从而可以在代理对象实现扩展功能。静态代理首先假设一种业务场景,需要实现对用户进行CRUD的操作,所以我们创建了一个UserService接口和UserServiceImpl的实现类。代码如下: public interface UserService { void addUser()

2020-11-02 22:10:59 62

原创 Spring学习之06配置和环境

Bean定义配置文件Bean定义配置文件在核心容器中提供了一种机制,该机制允许在不同环境中注册不同的Bean。 “环境”一词对不同的用户可能具有不同的含义,并且此功能可以帮助解决许多用例,包括在开发中针对内存中的数据源进行工作,而不是在进行QA或生产时从JNDI查找相同的数据源。仅在将应用程序部署到性能环境中时注册监视基础结构。为客户A和客户B部署注册bean的自定义实现。使用@Profile@Profile批注可让您指示一个或多个指定的配置文件处于活动状态时有资格注册的组件

2020-11-02 21:30:41 104

原创 Spring学习之05使用注解开发

使用注解开发在spring4之后,要使用注解开发,必须保证aop的包导入了同时使用注解要记得导入context约束,增加注解的支持,同时要指定要扫描的包<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:

2020-11-02 21:19:02 88

原创 Spring学习之04自动装配

Bean的自动装配自动装配是Spring满足bean依赖的一种方式!Spring会在上下文自动寻找,并自动给bean装配属性!在Spring中有三种装配的方式在xml中显式的配置在java中显示的配置隐式的自动装配这里我们主要讲第三种:自动化的装配bean。Spring的自动装配需要从两个角度来实现,或者说是两个操作:组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean;自动装配(autowiring):spring自动满足be

2020-11-02 21:11:18 114

原创 Spring学习之03依赖注入(DI)

Dependency Injection(DI)概念依赖注入(Dependency Injection,DI)。依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 .注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 .1、构造器注入(ioc创建对象中介绍了)2、Set方式注入(重点)要求被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写 , 如果属性是boolean类型 , 没有set方法 , 是 is

2020-11-02 20:55:21 112

原创 Spring学习之02Spring IOC

SpringIOCIoc基础UserDao接口UserDao实现类UserService接口UserService实现类新建一个空白的maven项目分析实现我们先用我们原来的方式写一段代码 .1、先写一个UserDao接口public interface UserDao { public void getUser();}2、再去写Dao的实现类public class UserDaoImpl implements UserDao { @Override pu

2020-11-02 16:57:21 57

原创 Spring学习之01Spring简介

SpringSpring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。参考文档及书籍:Spring5官方文档(配合谷歌翻译食用更佳)Spring5中文文档《Spring实战》(第四版)CSDN博客bilibili狂神说spring 概述简介Spring : 春天 —>给软件行业带来了春天2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。2004年3月24日,Spring框架以interface21框架为基础,经过重

2020-11-02 16:42:31 257

原创 MyBatis学习之08缓存

缓存简介1、什么是缓存 [ Cache ]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2、为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3、什么样的数据能使用缓存?经常查询并且不经常改变的数据。Mybatis缓存MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升

2020-11-01 22:02:48 55

原创 MyBatis学习之07动态SQL

动态SQL介绍什么是动态SQL:动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句.官网描述:MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 S

2020-11-01 21:54:18 129

原创 MyBatis学习之06多对一和一对多的映射关系

多对一和一对多的映射关系多对一的处理多对一的理解:多个学生对应一个老师如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师!数据库设计数据库CREATE TABLE `teacher` (`id` INT(10) NOT NULL,`name` VARCHAR(30) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO teacher(`id`, `nam

2020-11-01 21:45:57 155

原创 MyBatis学习之05使用注解开发

使用注解开发面向接口编程大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之

2020-11-01 21:38:44 74

原创 MyBatis学习之04分页的几种方式

分页的几种方式limit实现分页思考:为什么需要分页?在学习mybatis等持久层框架的时候,会经常对数据进行增删改查操作,使用最多的是对数据库进行查询操作,如果查询大量数据的时候,我们往往使用分页进行查询,也就是每次处理小部分数据,这样对数据库压力就在可控范围内。使用Limit实现分页#语法SELECT * FROM table LIMIT stratIndex,pageSizeSELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 #为了检索从某

2020-11-01 21:28:58 134

原创 MyBatis学习之03ResultMap映射集和日记工厂

ResultMap及分页初步了解ResultMap映射集概念查询为null问题要解决的问题:属性名和字段名不一致环境:新建一个项目,将之前的项目拷贝过来1、使用的数据库:user表以及三个字段名,2、Java中的实体类设计public class User { private int id; //id private String name; //姓名 private String password; //密码和数据库不一样! //构造

2020-11-01 21:24:39 62

原创 MyBatis学习之02CRUD操作及配置解析

CRUD操作及配置解析使用参考文档:mybatis文档学习来源:bilibili狂神说了解namespace的作用将上面案例中的UserMapper接口改名为 UserDao;将UserMapper.xml中的namespace改为为UserDao的路径 .再次测试结论:配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致!CRUDselectselect标签是mybatis中最常用的标签之一select语句有很多属性可以详

2020-11-01 21:12:05 138

原创 MyBatis学习之01MyBatis的第一个程序

MyBatis使用参考文档:mybatis文档学习来源:bilibili狂神说MyBatis第一个程序环境说明jdk 8 +MySQL 5.7.19maven-3.6.1IDEA学习前需要掌握:JDBCMySQLJava 基础MavenJunit什么是MyBatisMyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接

2020-11-01 20:58:00 86

原创 GOF设计模式

创建型模式之工厂模式案列分析:披萨订购为例传统方式的设计类图--------不满足设计模式的ocp原则(对扩展开放,对修改关闭,当我们给类增加性的功能的时候,尽量不修改代码,或者尽可能少修改代码)比如我们这时要性增加一个Pizza种类,不仅需要添加该类,还要修改其他创建pizza的代码我们可以把创建pizza对象封装 到一个类中,这样我们就有新的Pizza种类,只需要修改类就可,其他...

2019-10-15 21:03:02 89

原创 GOF二十三种设计模式之单例模式

二、设计模式(GOF二十三种设计模式)设计模式分三种,(一共二十三个)创建型模式单例模式,原型模式,建造者模式抽象工厂模式,工厂模式结构型模式适配器模式,桥接模式,装饰模式组合模式,外观模式,享元模式代理模式行为模式模板模式,命令模式,访问者模式,迭代器模式,观察者模式中介者模式,备忘录模式,解释器模式(Interperter模式)状态模式,策略模式,职责...

2019-10-15 20:24:42 98

原创 设计模式学习笔记之七大原则

一、设计模式的七大原则编写软件的过程中,使用设计模式是为了让程序(软件),具有更好的:代码重用性可读性可扩展性可靠性使程序呈现高内聚,低耦合设计模式常用的七大原则:单一职责原则 (SingleResponsibility)降低类的复杂度,一个类值负责一项职责提高类的可读性,可维护性降低变更引起的风险通常情况下,我们应当遵循单一职责原则,只有逻辑足够简单,才可以...

2019-10-15 20:13:31 130

原创 linux精简回顾版

linux精简回顾版目录结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TLUlU0sG-1571141468291)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1563794259326.png)]以下是对这些目录的解释:/bin:bin是Binary的缩写, 这...

2019-10-15 20:11:25 133

原创 Redis基本命令与操作

Redis基本命令Redis键命令用于管理redis的键DEL key :删除key (可同时删除多个key ,执行结束放回删除成功的数目)DUMP key :序列化给定的key,返回被序列号的值EXISTS key : 检查key是否存在EXPIRE key : 检查给定key是否存在EXPIRE key seconds : 为给定key设置过期时间(单位:秒)TTL key...

2019-10-15 20:10:45 121

转载 Session与Token认证机制

1 Web登录涉及到知识点1.1 HTTP无状态性HTTP是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的。当然它知道是哪个客户端地址发过来的,但是对于我们的应用来说,我们是靠用户来管理,而不是靠客户端。所以对我们的应用而言,它是需要有状态管理的,以便服务端能够准确的知道http请求是哪个用户发起的,从而判断该用户是否有权限继续这个请求。这个过程就...

2019-08-17 16:34:50 216

原创 Spring实战之使用WebSocket和STOMP实现消息功能

本章参考内容《spring实战》集成篇之使用WebSocket和STOMP实现消息功能使用WebSocket和STOMP实现消息功能spring为WebSocket通信提供了支持,包括:发送和接收消息的低层级API;发送和接收消息的高级API;用来发送消息的模板;支持SockJS,用来解决浏览器端、服务器以及代理不支持WebSocket的问题。我们来一一介绍其中的内容板块...

2019-08-03 10:46:18 1467

转载 【转】理解WebSocket与轮询、质询

一、

2019-08-03 10:23:38 123

原创 异常之springboot-文件上传之路径错误

异常信息java.io.IOException: java.io.FileNotFoundException: C:\Users\Administrator\AppData\Local\Temp\tomcat.5287997380898111817.8080\work\Tomcat\localhost\ROOT\static\file\bilibili_128px_1188648_easyico...

2019-07-30 13:23:21 2742

原创 MyBatisPlus异常之自动填充失效

使用MP的自动填充出现问题博主最近刚刚学习了MP,在使用了代码生成器后,在增加数据操作的时候,想试用自动填充,没报异常,但是没用出现自动注入博主使用mybatis版本是 MyBatis3.1.0,自动填充按照官方文档提示使用,在实体类上使用@TableField,并用fill属性指定自动填充策略自定义实现类MetaObjectHandler中的insertFill(MetaObjec...

2019-07-30 00:08:12 4421

空空如也

空空如也

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

TA关注的人

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