SSM面试要知道的

MyBatis可以简化JDBC操作,实现数据的持久化。
ORM: Object Relational Mapping
person对象 person表

ORM: 概念,Mybatis是ORM的一个实现(类似的还有Hibernate), ORM可以使开发人员像操作对象一样操作数据库表。

开发MyBatis程序步骤:
1.配置mybatis
conf.xml:配置数据库信息和需要加载的映射文件
映射文件xxMapper.xml:增删改查标签

MyBatis重要组件

  • Mapper配置:实体类Student.java-数据表student,XML或注解
  • Mapper接口(动态代理):DAO接口(只需要写接口,不用写实现类,注意需要遵循约定)

Mapper接口在编写时需要遵循约定:

  1. 方法名和SQL配置文件(studentMapper.xml)中的id值必须相同
  2. 方法的输入参数,必须和SQL配置文件的parameterType的类型相同;
  3. 方法的返回值,必须和SQL配置文件的resultType的类型相同

MyBatis开发时的常用对象

  1. SqlSessionFactory:SqlSession工厂。通过SqlSessionFactory:SqlSession中的openSession()产生SqlSession对象。
  2. SqlSession:SqlSession对象(类似于JDBC中的Connection)
  3. Executor:MyBatis中所有Mapper语句的执行都是通过Executor进行的。

MyBatis四大核心对象

  1. StatementHandler(负责sql语句):数据库的处理对象
  2. PrameterHandler(负责sql中的参数):处理SQL中的参数对象
  3. Executor
  4. ResultSetHandler:处理SQL的返回结果集

MyBatis四大处理器

StatementHandler、PrameterHandler、ResultSetHandler、TypeHandler(类型转换器)

输入参数:parameterType
1.

1. #{}和${}的区别是什么(对于输入参数类型为简单类型(8个基本类型+String))?

a.#{任意值} ${value}
b.#{}会自动给String类型加上‘’(自动类型转换)、${}原样输出,但适合于动态排序(动态字段)
c.#{}可以防止SQL注入、${}不可以

2. #{}和${}的相同之处是什么?

a.都可以获取对象的值(甚至是嵌套类型对象)

若传入的参数是对象类型:#{属性名}、KaTeX parse error: Expected 'EOF', got '#' at position 8: {属性名} #̲{}是预编译处理,{}是字符串替换。

Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值(PreparedStatement是操作数据库的);

Mybatis在处理 时 , 就 是 把 {}时,就是把 {}替换成变量的值。

使用#{}可以有效的防止SQL注入,提高系统安全性。

Spring

IOC/DI:控制反转/依赖注入

目的:解耦合
IOC帮我们提供了一个工厂。1向工厂中注入对象;2从工厂中获取对象;
IOC可以让我们通过“配置的方式”来创建对象

AOP:面向方面编程

面向对象(OOP)的补充,不是替代。
在这里插入图片描述
以上OOP两个不足,可以通过AOP进行改进。
在这里插入图片描述
spring MVC执行流程?

1.用户发送请求到前端控制器DispatcherServlet

2.然后DispatcherServlet请求处理器映射器查找Handler

3.HanderMapping向Dispatcher返回Handler

4.HandlerMapping调用处理器适配器HandlerAdapter去执行

Handler

5.处理器适配器去执行Handler

6.Handler执行完给处理器适配器返回ModelAndView

7.处理器适配器给DispatcherServlet返回ModelAndView

8.DispatcherServlet请求视图解析器View resolver进行视图解析

9.视图解析器向DispatcherServlet返回view

10.DispatcherServlet进行视图的渲染

11.DispatcherServlet向用户响应结果

使用AOP的实际场景

日志中比如,没删除一条数据,就要写一个日志
安全统一校验

Spring用到了哪些设计模式?
  • 工厂模式:创建bean、获取bean
  • 单例模式/原型模式:创建bean时,设置作用域,singleton/prototype
  • 监听模式:自定义时间发布,监听模式。如ApplicationListener,当某个动作触发时,就会自动执行一个通知。
  • 责任链模式:AOP
  • 策略模式:创建代理

SpringMVC

mybatis:jdbc
springmvc:servlet的封装
在这里插入图片描述

Spring Boot

最主要的功能:自动装配
以前(不用spring boot),需要自己配置框架的配置文件
spring, mybatis, ssm整合等情况,需要编写一大堆配置文件

如果使用Spring Boot, 则可以省略配置。好处:将开发重点放在业务逻辑上,而不是配置上。

自动装配的原理?约定由于配置(将一些配置功能,前置到源码底层实现好)

在这里插入图片描述
自动装配的应用时:@EnableautoConfiguration就是springboot提供自动装配的注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值