![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA EE SSM框架笔记
sanmu_1
这个作者很懒,什么都没留下…
展开
-
SSM框架day01——020——动态代理模式使用要求
1.什么是动态代理 动态代理中的代理类是由工具类或者工厂类动态生成的,不是由程序员手工定义的。代理关系是在程序运行过程中确立的。2.使用动态代理模式需要注意的几点: 1)动态代理模式中不用定义代理类 2)目标对象是在客户类中创建的。因为工具或工厂在生成代理类时,需要目标对象。而工具或工厂类是由客户类调用的,由客户类调用工具或工厂类生成代理类,并创建代理对象。 3)由于目标对...原创 2018-07-12 19:26:55 · 260 阅读 · 0 评论 -
SSM框架day01——029——适配器模式测试环境搭建、030——多功能适配器实现、031——单功能适配器实现
适配器设计模式 1)适配器模式的应用场景 将一个接口转换成客户需要的另一个接口。 将一个接口中的功能扩展到另一个类中。 使原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2)举例多功能适配器实现单功能适配器实现 其他类的适配器与以上大致相同测试类:...原创 2018-03-21 18:19:39 · 202 阅读 · 0 评论 -
SSM框架day01——025——CGLIB动态代理模式、026——CGLIB动态代理模式的实现、027——CGLIB动态代理执行流程分析、CGLIB动态代理的MethodProxy参数
1.什么是CGLIB CGLIB,Code Generation Library,代码生成库。是一个开源项目,是一个强大的,高性能,高质量的Code生成类库,它可以在运行在扩展Java类与实现Java接口。 CGLIB的底层是通过使用一个小而快的字节码处理框架ASM,来转换字节码并生成新的类。2.应用场景 CGLIB动态代理,其所要增强的目标类可以没有实现任何业务接口。当然,若目...原创 2018-03-21 18:14:33 · 446 阅读 · 0 评论 -
SSM框架day01——023——JDK动态代理时序图流程分析、024——JDK动态代理回调流程分析
JDK动态代理时序图流程分析JDK动态代理回调流程分析原创 2018-03-21 18:11:17 · 1355 阅读 · 0 评论 -
SSM框架day01——021——JDK动态代理模式、022-JDK动态代理模式的实现
JDK的Proxy动态代理 1) 使用要求:目标类必须要实现业务接口。即,使用JDK的Proxy动态代理,要求目标类必须是实现接口的类。 2)代理对象的名称: 名称由三部分构成:$ + Proxy + 数字。数字表示当前的JDK的Proxy所生成的代理类的索引。索引从0开始计数JDK动态代理模式的实现1.用户类2.委托类...原创 2018-03-21 18:08:40 · 229 阅读 · 0 评论 -
SSM框架day01——020——动态代理模式使用要求
1.什么是动态代理 动态代理中的代理类是由工具类或者工厂类动态生成的,不是由程序员手工定义的。代理关系是在程序运行过程中确立的。2.使用动态代理模式需要注意的几点: 1)动态代理模式中不用定义代理类 2)目标对象是在客户类中创建的。因为工具或工厂在生成代理类时,需要目标对象。而工具或工厂类是由客户类调用的,由客户类调用工具或工厂类生成代理类,并创建代理对象。 3)由于目标对...原创 2018-03-21 18:06:47 · 304 阅读 · 0 评论 -
SSM框架day02-MyBatis——052——关联查询-many2many-多表单独查询
(1)定义中间类(2)映射文件<mapper namespace="com.abc.dao.IStudentDao"> <!-- 多表单独查询 --> <select id="selectCourseById" resultType="Course"> select cid,cname from course where cid=#{j..原创 2018-03-25 19:46:08 · 248 阅读 · 0 评论 -
SSM框架day02-MyBatis——055——延迟加载-实现
一、延迟加载-实现(1)Jar包版本低于3.4.1时侵入式延迟开关默认为开启状态3.4.1以上默认为关闭状态(2)主配置文件中添加setting信息原创 2018-03-25 19:44:46 · 193 阅读 · 0 评论 -
SSM框架day02-MyBatis——054——延迟加载-基本概念
延迟加载 1.什么是延迟加载? 也称为懒加载,LazyLoading。 当代码中执行到查询语句时,并不是直接到DB中执行select语句进行查询,而是根据设置好的延迟策略,将查询向后推迟,这就称为延迟加载。 使用延迟加载可以减轻DB服务器的压力。 2.MyBatis的延迟加载 1)只能对关联对象进行查询时,使用延迟加载策略。对于主...原创 2018-03-25 19:42:29 · 212 阅读 · 0 评论 -
SSM框架day02-MyBatis——053——字段名与属性名不同的解决方案
一、映射文件关键代码原创 2018-03-25 19:41:51 · 192 阅读 · 0 评论 -
SSM框架day02-MyBatis——051——关联查询-many2many-多表连接查询
(1)创建数据库表(2)根据数据库创建实体类添加getset方法(3)日志文件(4)修改映射文件原创 2018-03-25 19:40:33 · 214 阅读 · 0 评论 -
SSM框架day02-MyBatis——049——关联查询-自关联-one2many-多表单独查询、050 关联查询-自关联-many2one
一、关联查询-自关联-one2many-多表单独查询(1)查询出指定栏目及所有子孙栏目修改映射文件(2)查询出指定栏目的所有子孙栏目二、关联查询-自关联-many2one(1)修改实体类(2)修改实现类接口(3)修改映射文件...原创 2018-03-25 19:38:22 · 183 阅读 · 0 评论 -
SSM框架day02-MyBatis——046——关联查询-one2one-共享主键解决方案、047、048关联查询-什么是自关联、one2many-多表连接查询
一、关联查询-one2one-共享主键解决方案共享主键:两张表的主键对应相等(1)多表连接查询(2)多表单独查询二、关联查询-什么是自关联、one2many-多表连接查询(1)定义实体类(2)dao实现类方法出现的问题:只能查询出栏目及其子栏目,不能查询出孙栏目及以后...原创 2018-03-25 19:33:12 · 215 阅读 · 0 评论 -
SSM框架day02-MyBatis——045——one2one-外键解决方案
(1)数据库建表:(2)创建实体类(3)创建操作类(4)拷贝全名,修改相应文件IHusbandDao.xml(5)多表单独查询原创 2018-03-25 19:29:22 · 457 阅读 · 0 评论 -
SSM框架day01——032——缺省适配器设计模式、033——模板方法设计模式基础知识
缺省适配器设计模式 当一个接口中具有大量抽象方法时,若一个类只需要使用其中的一小部分方法,其他方法并不需要访问,那么会出现一个问题:需要定义的这个类(实现了该接口)必须要实现这个接口中的所有方法。而这些方法中由于大多数方法并不需要访问,所以采用空实现的方式来实现(只有一对大括号,没有真正的方法体的内容)。这是比较麻烦的。 此时可以定义一个一般性的类,让这个类空实现所以方法。当然...原创 2018-03-21 18:21:50 · 115 阅读 · 0 评论 -
SSM框架day02-MyBatis——003——MyBatis的作用、结构与工作原理
1.MyBatis框架的作用 MyBatis在三层架构中处于Dao层,用于访问数据库。其作用类似于JDBC。2.MyBatis框架的系统结构3.MyBatis框架的运行原理API:Application Programming Interface,应用程序接口ORM:Object Relationship Mapping,对象关系映射MyBatis是一种ORM框架,是半自动ORM。MyBat...原创 2018-03-21 18:23:14 · 254 阅读 · 0 评论 -
SSM框架-Spring——007——第一个Spring程序-FileSystemXmlApplication用法
FileSystemXMLApplication的用法:将applicationContext放置到相应位置,修改测试类原创 2018-03-27 17:57:43 · 167 阅读 · 0 评论 -
SSM框架-Spring——006——第一个Spring程序-使用Spring降低耦合度
使用Spring降低耦合度(1)导入Jar包(2)创建Spring容器-配置文件 对于程序员来说,Spring容器就是一个XML配置文件;对于java代码来说,Spring容器就是一个对象,这个对象,肯定是将这个XML配置文件加载到内存后,形成的对象。 这个XML配置文件约束从Spring框架的如下文件中可以找到:\docs\spring-famework-reference\html...原创 2018-03-27 17:57:08 · 406 阅读 · 0 评论 -
SSM框架-Spring——005——第一个Spring程序-当前编程方式存在的问题
第一个Spring程序:当前编程方式存在的问题(1)首先定义接口(2)定义接口实现类(3)定义测试类原创 2018-03-27 17:55:34 · 259 阅读 · 0 评论 -
SSM框架day03-Spring——003——Spring的特点、004——Spring的下载
一、Spring的特点:(1)非侵入式编程 POIO,Plain Old java Object(2)容器(3)ioc(4)AOP二、Spring的下载结构:原创 2018-03-27 17:54:08 · 188 阅读 · 0 评论 -
SSM框架day03-Spring——002——Spring与耦合度
Spring与解耦合 Spring的作用就是为了解耦合,即降低代码间接耦合度。 Spring将应用程序中的代码根据功能划分为了两类:主业务逻辑与系统级服务。 主业务逻辑代码的特点:具有很强的专业领域性,复用性相对较低,代码间的耦合度相对较高。 系统级服务,也称为交叉业务逻辑,例如,事务管理、日志管理、安全管理等。其特点:专业领域性不强,复用性高,代码建的耦合度相对较低。系统...原创 2018-03-27 17:52:21 · 254 阅读 · 0 评论 -
SSM框架day03-Spring——001——Spring简介
Spring简介: Spring是2003年兴起的一个java轻量级框架。它是为了解决企业级开发的复杂性而创建的一个框架。其是一个分层的java SE/EE Full-Stack(一站式)框架。 Spring是一个容器,负责管理整个应用中所有的Bean的生命周期,及Bean之间的依赖关系。底层如图:...原创 2018-03-27 17:51:53 · 219 阅读 · 0 评论 -
SSM框架day02-MyBatis——066——动态SQL查询、067 MyBatis注解-动态SQL增删改、068 MyBatis注解-动态SQL的SQL类
一、动态SQL查询1.创建一个类并创建几个方法用于返回SQL语句2.在实现功能的类的方法中使用注解进行控制3.在测试类中按原先方法进行调用即可二、MyBatis注解-动态SQL增删改1.申明方法,使用注解实现增删改功能例:@SelectProvider(type=MySQLProvider.class,method=“getSelectSql2”)MySQLProvider.class为返回具体S...原创 2018-03-27 17:50:40 · 572 阅读 · 0 评论 -
SSM框架day02-MyBatis——062——EHCache二级缓存的基本用法、063 查询缓存管理-EHCache二级缓存的配置、064、065 MyBatis与注解及基本用法
一、EHCache二级查询缓存:1.EHCache二级缓存的开启方式分为两步 1)导入两个Jar包:EHCache核心Jar包与mybatis与ehcache整合的Jar包 2)在映射文件中添加<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>标签2.二级缓存的关闭分为两类 1)全局性...原创 2018-03-27 17:45:22 · 191 阅读 · 0 评论 -
SSM框架day02-MyBatis——059 查询缓存管理-增删改对二级缓存的影响、060 查询缓存管理-二级缓存的配置、061 查询缓存管理-二级缓存的使用原则
一、查询缓存管理-增删改对二级缓存的影响1、开启二级缓存在映射文件IStudentDao.xml中添加<cache/>标签2、证明:增删改操作对二级缓存的影响增删改操作会刷新(清空)二级缓存1)舒心二级缓存到底执行了些什么?二级缓存的底层也是Mapkey:hashCode + statementId + SQLvalue:查询结果刷新二级缓存实质上是将二级缓存中的所有的Entry的va...原创 2018-03-27 17:41:10 · 211 阅读 · 0 评论 -
SSM框架day02-MyBatis——056——查询缓存管理-基本知识、057 查询缓存管理-一级缓存、058 查询缓存管理-二级缓存
一、查询缓存管理-基本知识:1.查询缓存工作原理 查询语句<-->缓存<-->DB2.查询缓存中的缓存内容 MyBatis查询缓存中存放的是“查询结果”3.缓存分类 MyBatis查询缓存根据作用范围与生命周期的不同,可以分为两类: 1)一级缓存,也称为SqlSession缓存 默认是开启的,无法关闭 ...原创 2018-03-27 17:35:10 · 354 阅读 · 0 评论 -
SSM框架day02-MyBatis——007——第一个程序-定义映射文件
头文件除需要联网外,还可以通过配置过程:首先找到约束dtd文件,放在一个文件夹中,在eclipse中Windows选项下XML选项卡中进行配置定义映射文件 * 为一个XML文件,文件名随意,我们这里叫mapper.xml * 该文件定义到Dao接口所在包。 * 约束文件为mybatis-3.4.2.jar ! /org/apache/ibatis/bu...原创 2018-03-21 18:25:13 · 154 阅读 · 0 评论 -
SSM框架-MyBatis——004、005、006——第一个程序定义实体类、创建DB表、定义Dao接口
第一个MyBatis程序 功能:将一个学生信息写入到DB 1)导入Jar包 *MyBatis的Jar包 *MySql驱动的Jar包 2)定义一个Student类 id,name,age,score *主键id要定义为包装类型,不要定义为基本数据类型,例如,不要定义为int,而要定义为Integer *若显式得给...原创 2018-03-21 18:24:35 · 220 阅读 · 0 评论 -
SSM框架day02-MyBatis——001、002——什么是框架、什么是MyBatis框架
1.什么是框架 百度百科:框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。 对于程序员来说,框架是一套资源,一套解决某一类问题所使用的资源。这套资源中包含:Jar包,文档,源码,示例代码等内容,或其中部分内容。2.什么是MyBatis框架 MyBatis框架的前身是Apache的...原创 2018-03-21 18:24:09 · 252 阅读 · 0 评论 -
SSM框架day02-MyBatis——043——关联查询-多表单独查询、044关联查询——many2one
一、关联查询-多表单独查询二、关联查询——many2one(1)多表连接查询 1)修改Country实体类,变为含有两个参数 2)修改Minister实体类,添加country参数 3)拷贝IMinisterDao全名修改IMinister.xml的namespace及log4j日志文件(2)多表单独查询测试类与多表联合查询相同...原创 2018-03-25 19:26:47 · 235 阅读 · 0 评论 -
SSM框架day02-MyBatis——042——关联查询-one2many-多表连接查询
(1)创建javaBean类,并创建各自的无参和带参构造器(2)创建接口,编写方法(3)拷贝ICountryDao的全名,替换ICountryDao.xml的namespace以及日志配置文件log4j中的log4j.logger后的com.abc.dao.IStudentDao(4)测试类(5)多表连接查询...原创 2018-03-25 19:23:04 · 220 阅读 · 0 评论 -
SSM框架day01——017——静态代理模式使用要求、静态代理模式的执行流程分析
静态代理模式 1.什么是静态代理模式? 静态代理的代理类是由程序员手工编写的,代理模式是在代码运行之前就已经确立了。 2.使用静态代理模式的要求 1)代理类要与目标类具有相同的业务方法。这个要求,一般是通过实现相同的业务接口来进行约束的。当然,也可以让代理类与目标类继承自相同的父类。 目标类中的方法,称为目标方法;代理类中的方法,称为代...原创 2018-03-20 21:32:58 · 173 阅读 · 0 评论 -
SSM框架day02-MyBatis——030——对单表的CURD操作-map封装
(1)实现方法(2)映射文件(3)测试(4)总结#{}中可填写什么内容 1)参数对象的属性 2)任意内容,参数对象为基本数据类型或String时,起占位符的作用 3)map的key 4)map的key的属性,当map的key为对象 时...原创 2018-03-24 10:32:31 · 205 阅读 · 0 评论 -
SSM框架day02-MyBatis——029——复合条件查询-对象封装
(1)接口方法(2)映射文件(3)测试原创 2018-03-24 10:31:00 · 309 阅读 · 0 评论 -
SSM框架day02-MyBatis——028——对表单的CURD操作-模糊查询
(1)实现方法(2)映射文件(3)测试原创 2018-03-24 10:29:43 · 205 阅读 · 0 评论 -
SSM框架day02-MyBatis——027——对单表的CURD操作-根据id查询
(1)实现方法(2)映射文件(3)测试原创 2018-03-24 10:28:34 · 450 阅读 · 0 评论 -
SSM框架day02-MyBatis——026——对单表的CURD操作-查询所有结果是Map
一、IStudentDao.java中添加一个 方法 selectAllStudentMap()二、实现功能三、测试原创 2018-03-23 19:04:37 · 186 阅读 · 0 评论 -
SSM框架day02-MyBatis——025——对单表的CURD操作-查询所有
一、实现方法二、映射文件SQL三、测试原创 2018-03-23 19:03:20 · 145 阅读 · 0 评论 -
SSM框架day02-MyBatis——024——对单表的CURD操作-修改
一、实现方法二、映射文件SQL三、测试原创 2018-03-23 19:02:06 · 199 阅读 · 0 评论 -
SSM框架day02-MyBatis——023——对单表的CURD操作-删除
一、编写实现功能的方法二、在映射文件中写好SQL语句三、测试原创 2018-03-23 19:00:25 · 138 阅读 · 0 评论