首页 > 编程知识 正文

mybatis企业必问面试题,ssm三大框架面试题

时间:2023-05-05 15:03:21 阅读:146139 作者:442

一、冲刺问题

1、Spring在ssm中的作用是什么?

Spring :轻量级框架

角色:用于管理Bean生命周期和框架集成的Bean工厂。

两个主要核心:

. IOC/DI (控制反转/依赖注入) :将dao依赖注入服务层,将服务层反转为action层,Spring顶级容器为BeanFactory。

. AOP :面向切割的编程

2、Spring的事务?

编程式事务管理:用编程方式管理事务,非常灵活,很难维护。

声明性事务管理—使您可以将业务代码和事务管理分开,并通过注释和xml配置来管理事务。

3、IOC在项目中的作用?

角色: Ioc解决了对象之间的依赖关系,并通过配置文件或注释关联所有Bean的依赖关系来降低绑定度。

4、Spring概要文件的内容?

打开事务注释驱动

事务管理器

打开注释功能并设置扫描包

数据库配置

配置SQL会话工厂、别名和映射文件

不创建Dao层的实现类

5、Spring上的评论?

注册: @Controller @Service @Component

注入: @Autowired @Resource

请求地址: @RequestMapping

返回特定的数据类型而不是跳转: @ResponseBody

6、Spring DI有三种方式?

构造函数注入:用构造方法初始化

constructor-arg index='0' type=' Java.lang.string ' value=' BMW '/constructor-arg setter方法注入:用setter方法初始化

属性名称=' id ' value=' 1111 '/property接口注入

7、Spring主要使用什么模式?

工厂模式:每个Bean的创建路径方法

单实例模式:每个缺省Bean的范围是单实例

代理模式:关于Aop的实现通过代理模式

8、IOC、AOP的实现原理?

IOC :通过反射机制生成对象注入

AOP :动态代理

二. SpringMvc面试问题

1、SpringMvc的控制器是单实例模式吗? 如果是那样的话,有什么问题,怎么解决?

问题:单实例模式、多线程访问时有线进程的安全问题

解决方法:请勿使用同步。 不要在控制器上写字段

2、SpringMvc中控制器的评论?

@Controller :此注释表明此类充当控制器

3,@RequestMapping注释用于类的作用?

角色:用于将URL映射到类或特定处理方法

4、前台的多个参数,这些参数都是一个对象,能快速得到对象吗?

方法:在方法中直接声明对象时,SpringMvc会自动将属性分配给该对象

5、SpringMvc函数的返回值?

字符串、ModelAndView、列表、Set等

返回常规String、Ajax请求和List集合

6、SpringMvc上的传输和重定向?

传输:返回:“hello”

重定向:“return:“ redirect:hello.jsp”

使用体贴的馒头框架将java中的对象直接转换为js可以识别的json对象。 具体步骤如下。

装体贴的馒头. jar

在配置文件中配置json映射

必须在接受Ajax方法的过程中直接返回Object、list等,并在方法前添加注释@ResponseBody

8、SpringMvc的工作流程图?

9、Struts2和SpringMvc有什么区别?

入口不同:

结构2 :过滤器

SpringMvc :作为前端控制器的servlet

开发方法的不同:

Struts2:基于类开发,通过类的属性传递参数只能设置多个示例

SpringMvc :基于方法开发(一个方法对应于一个url ),将请求参数传递给方法参数,该参数可以是单个实例,也可以是多个实例(建议使用单个实例)。

理赔方法不同:

Struts2)值栈村塾的要求和应答的数据,通过OGNL访问数据

SpringMvc :参数解析器解析请求的内容,为方法参数赋值,将数据和视图封装到ModelAndView对象中,最后将ModelAndView中的模型数据填充到请求域中缺省情况下,jsp视图解析器使用jstl。

三. Mybatis面试问题

1、Ibatis和Mybatis?

Ibatis:2010年,apache的Ibatis框架停止更新,并移交给了google团队,同时更名为MyBatis。从2010年后Ibatis在没更新过,彻底变成了一个孤儿框架。一个没人维护的框架注定被mybatis拍在沙滩上。

Mybatis:Ibatis的升级版本。

2、什么是Mybatis的接口绑定,有什么好处?

Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。

3、什么情况用注解,什么情况用xml绑定?

注解使用情况:Sql语句简单时

xml绑定使用情况:xml绑定 (@RequestMap用来绑定xml文件)

4、Mybatis在核心处理类叫什么?

SqlSession

5、查询表名和返回实体Bean对象不一致,如何处理?

映射键值对即可

<result column="title" property="title" javaType="java.lang.String"/>

column:数据库中表的列名

property:实体Bean中的属性名

6、Mybatis的好处?

把Sql语句从Java中独立出来。

封装了底层的JDBC,API的调用,并且能够将结果集自动转换成JavaBean对象,简化了Java数据库编程的重复工作。

自己编写Sql语句,更加的灵活。

入参无需用对象封装(或者map封装),使用@Param注解

7、Mybatis配置一对多?

<collection property="topicComment" column="id" ofType="com.tmf.bbs.pojo.Comment" select="selectComment" />

property:属性名

column:共同列

ofType:集合中元素的类型

select:要连接的查询

8、Mybatis配置一对一?

<association property="topicType" select="selectType" column="topics_type_id" javaType="com.tmf.bbs.pojo.Type"/>

property:属性名

select:要连接的查询

column:共同列

javaType:集合中元素的类型

9 、${} 和 #{}的区别?

: 简 单 字 符 串 替 换 , 把 {}:简单字符串替换,把 :简单字符串替换,把{}直接替换成变量的值,不做任何转换,这种是取值以后再去编译SQL语句。

#{}:预编译处理,sql中的#{}替换成?,补全预编译语句,有效的防止Sql语句注入,这种取值是编译好SQL语句再取值。

总结:一般用#{}来进行列的代替

10、获取上一次自动生成的主键值?

select last _insert_id()

11、Mybatis如何分页,分页原理?

RowBounds对象分页

在Sql内直接书写,带有物理分页

12、Mybatis工作原理?

原理:

通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件中构建出SqlSessionFactory。

SqlSessionFactory开启一个SqlSession,通过SqlSession实例获得Mapper对象并且运行Mapper映射的Sql语句。

完成数据库的CRUD操作和事务提交,关闭SqlSession。

扫描下方二维码,及时获取更多互联网求职面经javapython爬虫大数据等技术,和海量资料分享
公众号**菜鸟名企梦后台发送“csdn”即可免费领取【csdn】和【百度文库】下载服务;
公众号
菜鸟名企梦后台发送“资料”:即可领取5T精品学习资料**、java面试考点java面经总结,以及几十个java、大数据项目资料很全,你想找的几乎都有

推荐阅读

二叉树高频面试题总结:含答案

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。