Mybatis 面试题 - 割肉机 - 博客园 (cnblogs.com)https://www.cnblogs.com/williamjie/p/11188716.html
1. 什么是MyBatis
MyBatis持久层的不完整的ORM框架,ORM:Object-Relation-Mapping 即 对象-关系-映射,把表映射成实体类,把表中字段映射实体类属性
- MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
- MyBatis是对SQL,存储过程还有动态SQL处理进行了封装,使得我们在开发的过程中能通过导入MyBatis的jar包之后调用其中已经封装好了的方法
- MyBatis取代了传统Java开发中的JDBC的,减少了代码量从而使得开发更加的高效、快捷
2. Mybatis的优点和缺点
3. #{}和${}的区别是什么?
${}是字符串替换,#{}是预处理;
${}:
> 变量占位符
> Mybatis在处理"${}"时,就是把"${}"直接替换成变量的值
#{}:
参数占位符
Mybatis在处理#{}时,会对sql语句进行预处理,将sql中的#{}替换为?号,调用PreparedStatement的set方法来按序给sql的?占位符设置参数值
使用#{}可以有效的防止SQL注入,提高系统安全性。
Mybatis,#{}和${}取值符号https://blog.csdn.net/m0_47010003/article/details/127192368
4. Mybaits 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
5. Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
6. 批量插入,批量删除
7. Xml映射文件中,除了常见的select|insert|updae|delete
8. MyBatis如何实现多表查询(一对一、一对多)
9.Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
Mybatis整合log4j、延迟加载_素心如月娅的博客-CSDN博客无https://blog.csdn.net/m0_47010003/article/details/12721771310.