![](https://img-blog.csdnimg.cn/2a477aeaae364e1385b3e8f504be1965.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
SSM框架
文章平均质量分 88
SSM框架学习
不断前进的皮卡丘
你有多努力的现在,就会有多无惧的未来。加油吧,少年!
展开
-
Spring ----AOP
文章目录前言一、静态代理设计模式1.为什么需要代理设计模式1.1回顾MVC和三层架构1.2为什么需要代理前言一、静态代理设计模式1.为什么需要代理设计模式1.1回顾MVC和三层架构我们先来回顾一下MVCMVC:Model 模型 比如实体类 ,View 视图 比如JSP页面,Controller 控制器 比如Servlet早期的三层架构用户直接访问控制层,控制层就可以直接操作数据库servlet–对数据进行增删改查缺点:程序臃肿,不利于维护Servlet的代码中:处理请求,响应,视图跳转原创 2022-08-27 11:50:37 · 870 阅读 · 4 评论 -
Mybatis--特殊SQL的执行
1.模糊查询解决方法1解决方法2解决方法3(建议使用这种方式)2.批量删除1.模糊查询大家应该还记得sql语句的模糊查询怎么写吧,那就是使用关键字like,并且有相应的通配符一起使用,%表示多个字符,_表示一个字符,比如说现在有一张表user,查询name中第一个字母是l的人select * from user where name like ‘_l’;如果是查询name中有 l 的人select * from user where name like ‘%l%’;模糊查询不可以使用.原创 2022-04-02 09:21:17 · 893 阅读 · 28 评论 -
Mybatis的各种查询功能
前言查询的记录有多条查询二 SQL语句使用了聚合函数查询三 返回值类型为map前言使用Mybatis进行查询的时候,查询出来的数据可能有一条数据,也可能是多条,我们就得根据返回数据的条数来指定返回类型,如果记录是多条,那么返回值类型就不能是实体类。查询的记录有多条如果查询出来有多条记录,但是我们方法的返回类型是实体类,就会报下面的错误org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or n.原创 2022-04-01 18:50:18 · 2755 阅读 · 6 评论 -
Mybatis获取参数值的方式
一、 Mybatis获取参数值的各种情况1.mapper接口方法的参数为单个字面量的类型2.mapper接口方法的参数有多个3.手动把参数放在map集合中4.mapper接口方法的参数是实体类型的参数5.通过@Param注解命名参数(比较常用)二、总结三、Param源码分析Mybatis获取参数值的两种方式:${},#{} ${}本质:字符串拼接,注意:单引号要加上#{}:本质:占位符赋值一、 Mybatis获取参数值的各种情况1.mapper接口方法的参数为单个字面量的类型 /** .原创 2022-03-31 14:49:20 · 3750 阅读 · 35 评论 -
Mybatis映射文件规则
在说明映射文件规则之前,先来回顾一下ORM相关概念。1.ORM概念ORM(Object Relationship Mapping)对象关系映射对象:Java的实体类对象关系:关系型数据库映射:二者之间的对应关系字段名和属性名要一一对应才可以,它们的名字要相同,底层调用的是反射机制Java概念数据库概念属性列,字段对象记录类表2.映射文件命名规则表对应的实体类的类名+Mapper.xml举例:假如数据库的表的名字是t_user,它对应的实体类是Us原创 2022-03-30 11:05:14 · 3276 阅读 · 38 评论 -
Spring MVC详解(学习总结)
本篇文章对Spring MVC的常用知识点做了总结,画了思维导图,而且每个程序自己都亲自去测试过,文章也放了测试结果的图片,这篇博客主要是用了方便自己以后复习的,写得也比较详细,希望也可以帮助到大家......原创 2022-07-14 14:38:14 · 97904 阅读 · 151 评论 -
[Spring MVC学习03]参数绑定
Spring MVC支持对多种类型的请求参数进行封装因为主要是为了学习参数绑定的内容,所以有的方法,我就没有返回视图,大家不用在意浏览器的页面报404,关键是传参问题设计表单页面success.jsp(路径webapp/jsp/success.jsp)编写控制器接收参数这里要注意的是,控制器接收参数的形参名称必须和表单的name属性保持一致,否则会接收失败!Spring MVC.xml配置我们发现出现了乱码问题,这时我们可以配置Spring MVC提供字符编码过滤器来解决问题。如果我原创 2022-07-13 15:35:18 · 399 阅读 · 3 评论 -
[Spring MVC学习02]URL地址映射
@RequestMapping中有一个value属性用来映射url,如果不写的话,默认就是value属性@RequestMapping({" ", " "})@RequestMapping如果用在类上面,就表示这个类里面的所有响应请求都是以该地址作为父路径指定控制器的方法URI5.2method属性指定请求的method类型,可以接受GET,POST,PUT,DELETE等,默认是可以接收GET请求和POST请求5.3params属性params:指定request中必须包含某些参原创 2022-07-12 22:53:37 · 1112 阅读 · 2 评论 -
[Spring MVC学习01] Spring MVC环境搭建以及工作流程了解
这些概念性的东西,大家如果是初学的话可以先看看有个印象,等搭建完Spring MVC后,大家就会有更深刻的理解首先用户发送请求,请求被SpringMvc前端控制器(DispatherServlet)捕获;前端控制器(DispatherServlet)对请求URL解析获取请求URI,根据URI, 调用HandlerMapping;前端控制器(DispatherServlet)获得返回的HandlerExecutionChain(包括Handler对象以及Handler对象对应的拦截器);DispatcherS原创 2022-07-12 21:56:50 · 704 阅读 · 3 评论 -
快速搭建第一个Mybatis程序
一、简介1.初识Mybatis2.持久化3.持久层4.为什么需要Mybatis二、第一个Mybatis程序1.搭建环境2.创建一个新模块一、简介以Mybatis3.5.7为例环境:jdk8.0Mysql8.0maven3.8.4IDEA回顾:JDBCMysqlJava基础MavenJunit1.初识MybatisMyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集.原创 2022-03-29 11:13:23 · 1377 阅读 · 29 评论 -
Spring对象的生命周期
对象的生命周期1.对象的生命周期的定义2.为什么要学习对象的生命周期3.生命周期的三个阶段3.1创建阶段3.2初始化阶段3.3销毁阶段对象的生命周期1.对象的生命周期的定义对象的生命周期指的是一个对象的创建、存活、消亡的一个完整过程2.为什么要学习对象的生命周期以前我们写代码的时候,都是自己来new对象User user=new User();当对象被虚拟机的垃圾回收机制回收,它就销毁了但是现在是由Spring来复杂对象的创建、存活、销毁,了解生命周期,有利于我们使用好Spring为我们创.原创 2022-04-21 00:06:10 · 1939 阅读 · 25 评论 -
Spring工厂创建复杂对象
1.复杂对象2.Spring工厂创建复杂对象的3种方式2.1FactoryBean接口2.1.1步骤2.1.2细节分析2.2实例工厂2.3静态工厂1.复杂对象复杂对象:指的是不能直接通过new构造方法创建的对象比如Connection,SqlSessionFactory2.Spring工厂创建复杂对象的3种方式2.1FactoryBean接口public class MyFactoryBean implements FactoryBean { @Override publ.原创 2022-04-19 19:17:21 · 972 阅读 · 32 评论 -
Spring的构造注入
1.开发步骤2.构造方法的重载2.1参数个数不同2.2构造参数个数相同时3.注入总结注入:通过Spring的配置文件,为成员变量赋值Set注入:Spring调用Set方法,通过配置文件,为成员变量赋值构造注入:Spring调用构造方法,通过配置文件,为成员变量赋值1.开发步骤提供有参构造方法public class Customer implements Serializable { private String name; private int age; pu.原创 2022-04-18 19:45:49 · 3988 阅读 · 21 评论 -
Spring-控制反转与依赖注入
1.反转(转移)控制(IOC Inverse of Control)2.依赖注入(Dependency Injection 简称DI )1.反转(转移)控制(IOC Inverse of Control)我们先来了解一下控制的概念控制:指的是对成员变量赋值的控制权反转控制:把对于成员变量赋值的控制权,从代码中反转(转移)到Spring工厂和配置文件中完成好处:可以解耦合底层原理:工厂设计模式当我们还没有学习Spring的时候,我们是直接在代码中,来完成对成员变量的赋值这也说明了对成员变.原创 2022-04-20 20:12:21 · 1163 阅读 · 11 评论 -
Mybatis的逆向工程
1.概念2.步骤1.概念在说逆向工程之前,我们先来了解一些正向工程和逆向工程的概念正向工程:先创建Java实体类,由框架根据实体类生成数据库表。Hibernate支持正向工程逆向工程:先创建数据库表,由框架来负责根据数据库表,反向生成下面的资源Java实体类Mapper接口Mapper映射文件2.步骤①首先我们先新建一个maven工程,这步我就不演示了接下来,在pox.xml中引入依赖和相关插件<?xml version="1.0" encoding="UTF-8".原创 2022-04-25 19:45:21 · 4557 阅读 · 14 评论 -
Spring的Set注入
注入是什么1.1为什么需要注入1.2如何进行注入注入是什么通过Spring工厂以及配置文件,为所创建对象的成员变量赋值1.1为什么需要注入通过编码的方式为成员变量进行赋值,存在耦合?为什么我们以前都是通过set方法来为成员变量赋值,这样通过代码为成员变量赋值存在耦合注入可以解决这种问题1.2如何进行注入类的成员变量提供set方法.........原创 2022-04-17 14:57:18 · 4945 阅读 · 30 评论 -
Mybatis--自定义映射ResultMap
ResultType是默认映射,要求字段名要和属性名一致原创 2022-04-04 20:18:28 · 3487 阅读 · 34 评论 -
工厂设计模式
1、Spring 是轻量级的开源的 JavaEE 框架轻量:spring框架所引用的jar包比较少,而且 体积小,而且可以独立使用开源:免费2、Spring 可以解决企业应用开发的复杂性3、Spring 有两个核心部分:IOC 和 Aop(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理(2)Aop:面向切面,不修改源代码进行功能增强4、Spring 特点(1)方便解耦,简化开发(2)Aop 编程支持(3)方便程序测试(4)方便和其他框架进行整合(5)方便进行事原创 2022-04-15 21:16:35 · 2897 阅读 · 7 评论 -
Mybatis--动态SQL
前言if标签if+wheretrim标签choose(when,otherwise)标签foreach标签sql片段前言mybatis的动态sql是一种根据特定的条件来进行动态拼接sql语句的字符串问题,动态 SQL 是 MyBatis 的强大特性之一。使用过 JDBC 或其它类似的框架,大家应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。下面,我就以t_emp表来讲解if标签.原创 2022-04-06 10:14:27 · 5254 阅读 · 42 评论 -
Spring框架和日志框架的整合
Spring框架和日志框架进行整合,日志框架可以在控制台中,输出Spring框架运行过程中的一些重要信息,方便我们了解Spring的运行过程,有助于我们进行调试Spring如何整合日志框架默认Spring1,2,3系列早期都是和commons-logging.jar进行整合Spring4,5系列默认的整合的日志框架是 logback 和 log4j2Spring5.x整合日志框架①引入log4j的jar包②引入log4j.properties配置文件在pom.xml原创 2022-04-17 14:18:02 · 420 阅读 · 0 评论 -
Mybatis的缓存
一、Mybatis的一级缓存1.概述2.一级缓存失效的四种情况1.不同的SqlSession对应不同的一级缓存2.同一个SqlSession但是查询条件不同3.同一个SqlSession两次查询期间执行了任何一次增删改操作4.同一个SqlSession两次查询期间手动清空了缓存3.**缓存和缓冲的区别?**二、Mybatis的二级缓存1.概述2.二级缓存开启的条件1.在核心配置文件中,设置全局配置属性cacheEnabled="true" (这个是默认的)2.在映射文件中设置标签\3二级缓存必须在SqlS.原创 2022-04-07 09:16:32 · 3988 阅读 · 43 评论 -
第一个Spring程序
1.软件版本2.环境搭建3.Spring的核心API4.程序开发1.软件版本下面这些是我本次进行第一个Spring程序所使用的环境jdk 1.8maven 3.5.7idea 2021SpringFramework 5.3.18Spring框架的官网https://spring.io/2.环境搭建Spring的jar包搜搜jar包的坐标网站https://mvnrepository.com/设置pom.xml依赖<dependency> <.原创 2022-04-15 21:18:02 · 1262 阅读 · 21 评论 -
Mybatis分页插件
第一步在pom.xml添加依赖<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.0</version>原创 2022-05-25 17:12:18 · 5371 阅读 · 5 评论 -
Spring学习(1) 初识Spring
编写核心配置文件配置名称:applicationContext.xml或beans.xml或spring.xml配置文件路径:src/main/resources代码点击 new module 创建新的maven模块先写一个类方便后面的测试编写applicationContext.xml配置文件然后测试一下注意:如果Spring的核心配置文件中,property标签中的属性,它对应的类没有此属性的set方法,那么就无法为这个属性赋值,就会报错...原创 2022-06-28 18:20:55 · 671 阅读 · 5 评论 -
Spring学习(8) AOP
配置文件开启组件扫描开启AspectJ注解支持把MyLogging类上面添加注解@Component:把当前类标识为组件@Aspect:把当前类标识为切面类[非核心业务提取类]把MyLogging中的方法添加通知注解@Before测试...原创 2022-07-03 08:53:48 · 394 阅读 · 0 评论 -
Spring学习(9) AspetJ详解
AspectJ中JoinPointJopinPoint[切入点对象]作用:获取方法名称 获取方法签名[方法名拼接上参数列表]获取参数AspectJ中通知前置通知语法:@Before执行时机:在指定方法执行之前[如目标方法中有异常,会执行]指定方法:切入点表达式设置位置后置通知返回通知语法:@AfterReturning执行时机:指定方法返回结果时执行 [如果目标方法有异常则不执行]注意:@AfterReturning中re原创 2022-07-03 15:00:19 · 656 阅读 · 8 评论 -
Spring学习(2) Spring的IOC底层实现
在创建Bean之前,首先需要创建IOC容器,Spring提供了IOC容器的两种实现方式:bean对象是由Spring IOC容器管理的bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象。这些 bean 是由用容器提供的配置元数据创建的,例如,在 XML 的表单中的 定义。bean的常见属性如果一个类中,有一个属性不是基本类型,包装类,String类,而是自定义的类型,那么我们就不可以使用value标签或value属性来为它赋值,而要使用ref来进行引用级联属性更改数值会影原创 2022-06-29 15:26:17 · 1179 阅读 · 53 评论 -
Spring学习(4) Spring依赖注入
Spring的核心功能之一就是通过依赖注入的方式来管理bean之间的依赖关系。所谓依赖注入,是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理。依赖注入有两种方式:构造注入和设值注入2.Spring 基于构造函数的依赖注入先准备两个类像这个例子,我们看出来,TextEditor这个类中有一个SpellChecker属性,这个属性刚好是一个引用类型,我们把原创 2022-06-30 18:32:28 · 467 阅读 · 2 评论 -
Spring学习(3) Bean的作用域和生命周期
在bean标签加上属性scope就可以了singleton:单例prototype:多例request:请求域session:会话域Spring的IOC容器可以管理bean的生命周期,Spring运行在bean生命周期内特定的时间点执行指定的任务(1)Spring的IOC容器对bean的生命周期进行管理的过程①通过构造器或工厂方法创建bean实例②为bean的属性设置值和对其他bean的引用③bean可以使用(2)配置bean的时候,可以通过init-method和destroy-method属原创 2022-06-29 16:09:45 · 451 阅读 · 10 评论 -
Spring学习(7) AOP前奏之代理模式
需求:实现加减乘除的计算器类实现后发现的问题:总结:在核心代码中,需要日志功能,但是我们并不希望,在核心代码中添加日志代码接口实现类日志关键代码原创 2022-07-03 08:00:00 · 466 阅读 · 1 评论 -
Spring学习(5) Spring中的自动装配(基于XML)
自动装配的规则,即autowire的属性值有:在前面几篇博客中,我们已经知道了如何使用元素来声明 bean 和通过使用 XML 配置文件中的和元素来注入 。Spring 容器可以在不使用和 元素的情况下自动装配相互协作的 bean 之间的关系,这有助于减少编写一个大的基于 Spring 的应用程序的 XML 配置的数量。可以使用元素的 autowire 属性为一个 bean 定义指定自动装配模式。可以使用 byType 或者 constructor 自动装配模式来连接数组和其他类型的集合。...原创 2022-07-01 16:31:09 · 987 阅读 · 11 评论 -
Spring学习(6) Spring中基于注解的方式管理Bean
在Java中有一个不成名的规定:约束 > 注解 > XML配置 > 代码使用注解标识组件,注解是使用在类上面标识装配对象的四个注解使用注解步骤使用注解去标识组件2.使用注解管理对象中属性的赖关系(自动装配)2.1@Autowired注解@Autowired注解作用:自动装配对象中的属性装配原理:反射机制装配方式:先按照byType进行匹配再按照byName进行唯一筛选@Autowired中required属性组件被上述注解标识后,还需要通过Spring进行扫描才能侦测到当前包及其子包都会被原创 2022-07-02 13:34:39 · 797 阅读 · 2 评论 -
Spring全面详解(学习总结)
文章对Sring进行了总结,对一些核心技术点,通过画流程图,代码,文字结合进行讲解,让大家更好理解原创 2022-07-04 11:02:02 · 65853 阅读 · 193 评论