Mybatis面试题(含答案)

本文详细探讨了Mybatis的核心概念,包括#{}和${}的区别、Dao接口的工作原理、分页实现方式及分页插件原理。此外,还讨论了Mybatis的映射文件标签、插件运行机制、缓存策略以及延迟加载的实现。通过对Mybatis深入理解,有助于提升面试表现。
摘要由CSDN通过智能技术生成
1. #{}和${}的区别是什么?
#{}是预编译处理,${}是字符串替换。
Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set
方法来赋值;
Mybatis 在处理${}时,就是把${}替换成变量的值。
使用#{}可以有效的防止 SQL 注入,提高系统安全性。
2. 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,
请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,
参数不同时,方法能重载吗?
Dao 接口,就是人们常说的 Mapper 接口,接口的全限名,就是映射文件中的 namespace
的值,接口的方法名,就是映射文件中 MappedStatement 的 id 值,接口方法内的参数,
就是传递给 sql 的参数。Mapper 接口是没有实现类的,当调用接口方法时,接口全限名+
方法名拼接字符串作为 key 值,可唯一定位一个 MappedStatement,举例:
com.mybatis3.mappers.StudentDao.findStudentById,可以唯一找到 namespace 为
com.mybatis3.mappers.StudentDao 下面 id = findStudentById 的
MappedStatement。在 Mybatis 中,每一个<select>、<insert>、<update>、<delete>
标签,都会被解析为一个 MappedStatement 对象。
Dao 接口里的方
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值