![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javaweb
文章平均质量分 96
马+
学习代码的小菜鸡
展开
-
手把手带你阅读Mybatis源码-----缓存篇
何谓缓存?虽然这篇说的是MyBatis的缓存,但是我希望正在学习计算机的小伙伴即使还没有使用过MyBatis框架也能看明白今天这篇文章。缓存是什么?我来说说个人的理解,最后再上比较官方的概念。缓存(Cache),顾名思义,有临时存储的意思。计算机中的缓存,我们可以直接理解为,存储在内存中的数据的容器,这与物理存储是有差别的,由于内存的读写速度比物理存储高出几个数量级,所以程序直接从内存中取数据和从物理硬盘中取数据的效率是不同的,所以有一些经常需要读取的数据,设计师们通常会将其放在缓存中,以便于程序对其转载 2020-11-13 22:36:18 · 196 阅读 · 1 评论 -
Mybatis源码简单解读---执行
~原创 2020-11-13 22:21:21 · 180 阅读 · 0 评论 -
Mybatis源码简单解读----构建
作为新手简单解读mybatis源码是如何运转的,这以部分只要从构建mybatis的配置来分析,mybatis在解析配置文件的时候做了什么事原创 2020-11-13 22:14:14 · 210 阅读 · 0 评论 -
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 · 95 阅读 · 0 评论 -
SpringMVC学习之07 拦截器和文件上传下载
拦截器Interceptor概述SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。**过滤器与拦截器的区别:**拦截器是AOP思想的具体应用。过滤器servlet规范中的一部分,任何java web工程都可以使用在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截拦截器拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用拦转载 2020-11-03 17:05:08 · 155 阅读 · 0 评论 -
SpringMVC学习之06 JSON交互处理
JSON交互处理什么是JSON?JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等转载 2020-11-03 16:59:52 · 83 阅读 · 0 评论 -
SpringMVC学习之06 结果跳转和数据处理
结果跳转方式ModelAndView设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .页面 : {视图解析器前缀} + viewName +{视图解析器后缀}<!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> &l转载 2020-11-03 16:55:24 · 130 阅读 · 0 评论 -
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 · 167 阅读 · 0 评论 -
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 · 332 阅读 · 0 评论 -
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 · 737 阅读 · 0 评论 -
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 · 138 阅读 · 0 评论 -
SpringMVC学习之01回顾MVC架构和Servlet
前序:该系列笔记参考文档和书籍:《Spring实战(第四版)》<bilibi狂神说视频>SpringMVC官方文档回顾MVC架构什么是mvc全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输.原创 2020-11-03 15:27:43 · 125 阅读 · 0 评论 -
Spring学习之10声明式事务
声明式事务回顾事务事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎!事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。事务四个属性ACID原子性(atomicity)事务是原子性操作,由一系列动作组成,事务的原子性确保动作要么全部完成,要么完全不起作用一致性(consistency)一旦所有事务动作完成,事务就要被提交。数据和资源处于一种满足原创 2020-11-03 15:03:59 · 62 阅读 · 0 评论 -
Spring学习之09整合MyBatis
整合Mybatis步骤1、导入相关jar包junit<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependency>mybatis<dependency> <groupId>org.mybatis<原创 2020-11-02 22:34:10 · 68 阅读 · 0 评论 -
Spring学习之08AOP使用
AOPaop介绍AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP 即 Aspect Oriented Program 面向切面编程所谓的核心业务,比如登陆原创 2020-11-02 22:24:57 · 160 阅读 · 0 评论 -
Spring学习之07动态/静态代理模式
代理模式Spring的aop底层就是代理模式静态代理动态代理代理模式的导图: 可以看出,代理模式就是客户端(Client)并不直接调用真实对象,而是调用代理对象,通过代理对象调用真实对象,从而可以在代理对象实现扩展功能。静态代理首先假设一种业务场景,需要实现对用户进行CRUD的操作,所以我们创建了一个UserService接口和UserServiceImpl的实现类。代码如下: public interface UserService { void addUser()原创 2020-11-02 22:10:59 · 71 阅读 · 0 评论 -
Spring学习之06配置和环境
Bean定义配置文件Bean定义配置文件在核心容器中提供了一种机制,该机制允许在不同环境中注册不同的Bean。 “环境”一词对不同的用户可能具有不同的含义,并且此功能可以帮助解决许多用例,包括在开发中针对内存中的数据源进行工作,而不是在进行QA或生产时从JNDI查找相同的数据源。仅在将应用程序部署到性能环境中时注册监视基础结构。为客户A和客户B部署注册bean的自定义实现。使用@Profile@Profile批注可让您指示一个或多个指定的配置文件处于活动状态时有资格注册的组件原创 2020-11-02 21:30:41 · 113 阅读 · 0 评论 -
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 · 96 阅读 · 0 评论 -
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 · 129 阅读 · 0 评论 -
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 · 123 阅读 · 0 评论 -
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 · 66 阅读 · 0 评论 -
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 · 264 阅读 · 0 评论 -
MyBatis学习之08缓存
缓存简介1、什么是缓存 [ Cache ]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2、为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3、什么样的数据能使用缓存?经常查询并且不经常改变的数据。Mybatis缓存MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升原创 2020-11-01 22:02:48 · 61 阅读 · 0 评论 -
MyBatis学习之07动态SQL
动态SQL介绍什么是动态SQL:动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句.官网描述:MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 S原创 2020-11-01 21:54:18 · 137 阅读 · 0 评论 -
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 · 166 阅读 · 0 评论 -
MyBatis学习之05使用注解开发
使用注解开发面向接口编程大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之原创 2020-11-01 21:38:44 · 85 阅读 · 0 评论 -
MyBatis学习之04分页的几种方式
分页的几种方式limit实现分页思考:为什么需要分页?在学习mybatis等持久层框架的时候,会经常对数据进行增删改查操作,使用最多的是对数据库进行查询操作,如果查询大量数据的时候,我们往往使用分页进行查询,也就是每次处理小部分数据,这样对数据库压力就在可控范围内。使用Limit实现分页#语法SELECT * FROM table LIMIT stratIndex,pageSizeSELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 #为了检索从某原创 2020-11-01 21:28:58 · 140 阅读 · 0 评论 -
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 · 75 阅读 · 0 评论 -
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 · 112 阅读 · 0 评论