Mybatis

SSM-Mybatis面试题(部分)

1.何为Spring Bean 容器? Spring Bean 容器于Spring IOC 容器有什么不同吗?

答: Spring Bean 容器,用于创建Bean 对象, 管理Bean 对象的容器, Spring IOC 容器本质上指的就是Spring Bean 容器, Spring Bean 容器中最核心的机制是IOC 机制(控制反转),所以有时候也将Spring Bean 容器称之为Spring IOC 容器.

2,那紧接着, 何为Spring IOC 容器呢?

答: IOC 是Spring 中提供的一种反转机制, 目的是将我们项目中对象的依赖管理, 交给Spring实现, 就是把我们代码里需要实现的对象创建,依赖代码, 反转给容器来实现, 既然交给容器实现, 那么我们必然需要创建一个容器, 同时也要一种描述来让容器知道需要创建的对象于对象的关系, 这个描述具体表现就是我们所看到的配置文件.
这样可以更好实现对象关系的解耦, 提高程序的可扩展性.

3.Spring DI 如何理解?

答: DI 是 Spring 中的依赖注入机制, IOC 的实现需要借助这种机制, 我们通常会这样理解, Spring Bean 容器中的IOC 思想是一种目标, 而DI 是实现这种思想目标的手段.

4.如果Spring 工厂底层构建Bean 对象借助什么机制, 当对象不使用时要释放资源, 目的是什么?何为内存泄露?

答: 借助反射机制, 目的是防止内存泄漏, 对象已经不适用了但是还占用着内存, 这种现象称之为内存泄漏,内存泄漏不是内存溢出, 但是它是内存溢出的一个导火索,内存溢出可直接导致系统崩溃.

5.Spring MVC 处理流程以及应用优势

答: 1.客户端发出一个HTTP 请求WEB服务器,WEB服务器HTTP请求进行解析,如果匹配前端控制器的请求映射路径,WEB 容器请求交转交给Dispatcher Servlet.
2.Dispatecher Servlet 接受到这个请求之后将根据请求的信息以及处理器映射器的配置找到处理请求的处理器.
3.由具体的处理器适配器对Hanlder 进行具体的调用.
4.Hanler 对数据处理完成后将返回一个ModelAndView 对象给Dispatecher Servlet.
5.Dispatcher Servlet 通过视图解析器将ModelAndView 转化为 真正的视图View.
6.Dispatcher Servlet 通过Model 解析出 ModelAndView 中的参数进行解析. 最终展现出完整的View 并返回客户端.

6,Spring 中的事务处理方式及优缺点.

答: 1.能够思想全局事务的控制, 通过EJB,CMT进行事务的管理.
2.能够保证项目模块在系统中完成的功能是可控制的操作(AOP).
缺点在于: Spring 中的事物有编程式事务和申明是事物.

7.Mybatis 应用中"#“与”$"有什么异同点?

答: 相同点:都是通辽get来获取值.
不同点:$传进去的字符串不带引号, # 号带引号.

8.Mybatis 应用动态SQL 解决了什么问题?

答: 有时候固定的SQL语句不能满足我们的应用需求,这个时候需要在此基础上建立动态的查询语句.
Mybatis 提供了多种注解,可以提供动态查询语言.
比如说在开发的时候, 遇到这样的场景: 界面提供了多种查询, 但是都是非必填写, 在选择查询条件时可以选中任意集中须贺作为查询条件, 如果在使用JDBC的时候, 需要判断参数为空, 自己组装SQL,但Mybatis 提供动态SQL机制, 避免了此类问题.

在这里插入图片描增加述

9.Mybatis 的基本工作流程

答: 1.读取配置文件,配置文件包含数据库链接信息和Mapper 映射文件或Mapper包路径.
2.有了这些信息就能创建 SqlSessionFactory,SqlSessionFactory 的生命周期是程序级,程序运行时建立,程序结束消亡.
3.SqlSessionFactory 建立SqlSession,目的是执行SQL 语句, SqlSession 是过程级,一个方法中建立, 方法结束应该关闭.
4.当用户使用mapper.xml 文件中配置方法时,Mybatis 首先会解析SQL 动态标签为对应数据库SQL语句的形式,并将其 封装进 MapperStatement对象, 然后通过 Executor 将SQL 注入数据库执行, 并返回结果.
5.将返回的结果通过映射,包装成java 对象.

10.Mybatis 的编程步骤

1.创建Sql SessionFactory .
2.通过SqlSessionFactory 创建SqlSession.
3.通过SqlSession执行数据库操作.
4.通过session.commit() 提交事务.
5.session.close() 关闭事务.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值