javaEE复习

本资料是针对某院校某年考试的复习知识点

一、MyBatis基础

1.请简述MyBatis框架的工作流程?(p4)

MyBatis的工作流程

  1. MyBatis读取配置文件和映射文件
  2. MyBatis根据配置信息和映射信息生成SqlSessionFactory对象,然后用该对象创建MyBatis的核心对象sqlSession。
  3. 开发者通过调用sqlSession对象完成数据库的操作(补充一点底层小知识:其实真正操作数据库的不是sqlSession(辅导员),而是Executor执行器接口(班长)操作数据库,该接口有两个实现类,一个是普通实现类,一个是缓存执行器)
  4. Executor执行器处理SQL信息
2.一般使用什么模式创建SqlSessionFactory对象?(p5)

答: 一般使用单例模式创建SqlSessionFactory对象,即每一个数据库对应一个SqlSessionFactory对象。(SqlSessionFactory存在于Mybatis应用的整个生命周期,重复创建SqlSessionFactory对象会造成数据库资 源的过度消耗。)

二、MyBatis进阶

1.MyBatis提供了几种不同类型的数据源?(p28)

答:

  1. UNPOOLED,非连接池类型,该类型数据源只是在每次请求时才会打开和关闭连接。它适用于对性能要求不高的简单应用程序
  2. POOLED,连接池类型,这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。它适用于对性能有一定要求的应用程序
  3. JNDI ,这个数据源的实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。

三、MyBatis的关联映射

1.使用MyBatis处理一对一的表关系,需要使用哪个标签,有哪些重要属性?(p37)

答:
标签:association

  1. property,用于所映射的类
  2. javaType,用于所映射的类的属性的类型
  3. jdbcType,用于指定数据表中对应的字段的类型
2.使用MyBatis处理一对多的表关系,需要使用哪个标签?(p43)

答:标签:collection

四、动态SQL和注解

动态SQL让MyBatis框架会更加的灵活,让开发者对不同的SQL语句进行拼接,更方便处理复杂的业务

1.MyBatis有哪些常用的动态SQL元素?(P58)

答:

  1. if相当于判断语句,常用于单条件判断。
  2. choose,相当于判断语句,常用于多条件分支判断。
  3. trim,辅助元素,用于处理一些拼装问题
  4. foreach,相当于循环语句,在in语句等列举条件时常用
2.choose,when,otherwise与java哪些关键字对应(p62)
  1. choose对应switch
  2. when对应case
  3. otherwise对应default
3.MyBatis常用注解和XML配置标签的对应关系以及功能描述?(p73)
注解XML标签描述
@Select<select>查询操作
@Insert<insert>插入操作
@Update<update>修改操作
@Delete<delete>删除操作
@Param传入参数

五、MyBatis缓存处理

1.MyBatis支持哪些级别的缓存?(P82)
  1. 一级缓存,它是SqlSession级别的缓存
  2. 二级缓存,它是Mapper级别的缓存,多个SqlSession去操作同一个Mapper的SQL语句,二级缓存是跨SqlSession的,多个SqlSession可以共用二级缓存。

总结:在实际应用中,一级缓存是默认开启的,二级缓存需要手动开启。【一级缓存好比软工5班只能在自己班里活动,二级缓存则可以好比一个万能班级可以在多个班级里活动。(作者的理解)】

六、Spring基础

1.Spring框架有哪些优势和特点?(P98)
  1. 降低耦合度,方便开发,通过IOC(控制反转),把对象的创建交给Spring去管理。
  2. 支持AOP切面编程,对程序进行权限拦截、安全监控等操作,减少传统方法OOP带来的冗余(假如我现在想想在一个聊天室的软件里加一个敏感词替换为***的功能,又不想改源码,就可以使用AOP)
2.Spring的功能体系?(p98)

答:spring的功能体系

3.什么是AOP?(P100)

答:AOP提供了面向切面编程的编程实现,允许定义方法拦截器和切入点对代码解耦。

七、使用Spring管理Bean

1.Bean标签有哪些属性以及属性的描述?(P116)

答:

<bean>元素的属性

参考链接

2.Spring有哪些常用注解?(P132)

答:

注解描述
@Component指定一个普通的Bean
@Scope指定Bean实例的作用域
@Value指定Bean实例的注入值

八、 Spring的AOP

1.AOP的XML配置有哪些常用标签?(p144)

答:

元素名称描述
<aop:aspect>指定切面
2.AOP的常用注解有哪些?(P148)
注解名称描述
@Aspect指定切面
@After指定后置通知
@AfterReturning指定返回通知
@AfterThrowing指定异常通知
3.请解释下面代码里的注解(p150)
//指定切面是Aspect01这个类
@Aspect
//设置优先级数为1,值越小优先级越高
@Order(1)
public class Aspect01{
    //指定切点是pointcut这个方法,execution()是切点表达式,看不懂就百度搜索“aop切点表达式”
    @Pointcut("execution(*com.qfedu.demo02.UserServiceImpl.*(..))")
    public void pointcut(){
        
    }
    //指定前置通知,该方法会在切点运行之前执行
    @Before("pointcut()")
    public void before(){
        System.out.println("这是Aspect01的前置通知!!");
    }
    //指定后置通知,该方法会在切点运行之后执行
    @after("pointcut()")
    public void after(){
        System.out.println("这是Aspect01的后置通知!!");
    }
}

九、Spring的jdbc

1.请谈谈Spring JDBC与MyBatis的区别(P166)

答:

  1. spring jdbc是对jdbc api的简单封装,而MyBatis是采用了ORM(对象关系映射)的思想,对jdbc技术的高度封装。
  2. springjdbc性能要比MyBatis快一点,适合管理域的sql语句;而MyBatis可以对sql语句进行批量管理,更适合在业务域使用
  3. MyBatis的耦合度比springjdbc低很多(MyBatis是把sql写在配置文件里,而springjdbc是把sql写在代码里的)
2.JDBCTemplate类的哪个方法可以DML操作,什么是DML?(P176)

答:

DML是对数据库的添加、删除、修改。***update()***方法用于实现DML语句操作。

(扩展:DQL是数据查询语言,JDBCTemplate类有queryXxx用于数据库查询语句

DDL是数据定义语言,JDBCTemplate类一般用execute执行DDL语句)

十、Spring管理数据库事务

1.请说说Spring声明式事务的注解有哪些?(P198)

答:

属性描述
timeout用于指定事务的超时时间
readonly用于指定事务是否为只读

十一、Spring MVC基础

1.请说说@PathVariable注解是用来干什么的?(P217)

答:用于获取URL中的动态参数,支持动态URL访问并可以将请求URL中的动态参数映射到功能处理处理方法的形参上去。【如何理解:

假如前端有一个http请求的url是这样:http://localhost:8080/test/xuSong/

后台如何拿到xuSong这个参数值呢,就可以使用PathVariable注解,

@RequestMapping(value="/test/{name}")

@PathVariable(value=“name”)】

2.请说说@RequestHeader注解是用来干什么的?(P219)

答:

用于获取请求头中的数据,它可以将请求头中的数据映射到功能处理方法的形参上。

3.请解释下面某些代码的意思?(P223)

答:

@Controller//用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller对象,这个控制器类交给Spring 来管理。
public class MyController01{
    //value是设置请求的地址是/defaultparm。method是设置请求的方式为POST请求
    @RequestMapping(value="/defaultparm", method=RequestMethod.POST)
    public void param1(HttpServletRequest request, HttpServletResponse response) throws IOException{
        //throws是抛出异常
    }
}

十二、Spring MVC的参数绑定

1.SpringMVC绑定POJO类型参数(p228)

绑定POJO类型参数

十三、异常处理和拦截器

1.请说说HandlerExceptionResolver接口的resolverException方法的参数?(P241)
参数说明
HttpServletRequest请求对象
HttpServletResponse响应对象
2.请说说拦截器的底层是用什么来实现的?(P246)

答:java动态代理

3.请说说HandlerInterceptor接口的三个方法?(P247)

答:

  • preHandle()方法:在控制器方法之前执行,返回true表示继续执行,false表示拦截请求,不再向下执行。
  • postHandle()方法:在控制器方法之后,返回ModelAndView之前执行。
  • afterCompletion()方法:在执行完控制器之后执行。

十四、Spring MVC的高级功能

1.SpringMVC实现JSON交互

SpringMVC实现JSON交互

十五、SSM框架整合

1.开发中经常采用三层架构来搭建项目,什么是三层架构?(P279)

答:

界面层、逻辑层、数据访问层。分层次的目的是为了满足高内聚低耦合的编程思想

2.整合ssm框架需要编写哪些配置文件?(P282)

答:

  1. jdbc.properties/mybatis-config.xml(数据库连接信息文件)
  2. application.xml(Spring框架的配置文件)
  3. springMVC-config.xml(SpringMVC框架的配置文件)
  4. web.xml(完成Spring监听器和SpringMVC前端控制器的配置)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值