Mybatis面试问题

1:Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件, id 是否可以重复?
不同的XML文件,如果配置了namespace,那么id可以重复,如果没有篇日志namespace,那么id不能重复

2:Mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问, B 标签能
否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?
:虽然 Mybatis 解析 Xml 映射文件是按照顺序解析的,但是,被引用的 B 标签依然可以
定义在任何地方, Mybatis 都可以正确识别。原理是, Mybatis 解析 A 标签,发现 A 标签引
用了 B 标签,但是 B 标签尚未解析到,尚不存在,此时, Mybatis 会将 A 标签标记为未解
析状态,然后继续解析余下的标签,包含 B 标签,待所有标签解析完毕, Mybatis 会重新
解析那些被标记为未解析的标签,此时再解析 A 标签时, B 标签已经存在, A 标签也就可
以正常解析完成了。

3:Mybatis 中如何指定使用哪一种 Executor 执行器?
在Mybatis配置文件中,可以指定默认的ExectorType执行器类型,也可以手动给DefaultSqlSessionFactory的创建SqlSession的方法传递ExecutorType类型参数。

4:Mybatis 是否可以映射 Enum 枚举类 ?
Mybatis可以映射枚举类,不单可以映射枚举类,Mybatis可以映射任何对象到表的一列上。
映射方式为自定义一个TypeHandler,实现TypeHandler的setParameter()和getResulr()接口方法。
TypeHandler有两个作用,意识完成从javaType至getResult()两个方法,分别代表设置sql问号占位符参数和获取列查询结果。

5:如何获取自动生成的(主)键值?
配置文件设置usegeneratedkeys为true。

6:在Mapper中如何传递多个参数?
1)直接在方法中传递参数, xml 文件用#{0} #{1}来获取
2)使用 @param 注解:这样可以直接在 xml 文件中通过#{name}来获取
resultType resultMap 的区别?
1.类的名字和数据库相同时,可以直接设置resultType参数为pojo类。
2.若不同,需设置resultMap将结果名字和pojo名字进行转换。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值