SSM框架面试题之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工作原理?

在这里插入图片描述
流程:
1.通过Reader对象读取Mybatis映射文件
2.通过SqlSessionFactoryBuilder对象创建SqlSessionFactory对象
3.获取当前线程的SQLSession
4.事务默认开启
5.通过SQLSession读取映射文件中的操作编号,从而读取SQL语句
6.提交事务
7.关闭资源

总结:
Mybatis的准备工作与Hibernate差不多,都需要一个总配置文件、一个映射文件。
Mybatis的SQLSession工具类使用ThreadLocal来对线程中的Session来进行管理。
Mybatis的事务默认是开启的,需要我们手动去提交事务。
Mybatis的SQL语句是需要手写的,在程序中通过映射文件的命名空间.sql语句的id来进行调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟驿站ㅤ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值