Mybatis面试题

Mybatis 面试题 - 割肉机 - 博客园 (cnblogs.com)icon-default.png?t=M85Bhttps://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,#{}和${}取值符号icon-default.png?t=M85Bhttps://blog.csdn.net/m0_47010003/article/details/127192368


4. Mybaits 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

7、Mybaits 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?_IT匠人的博客-CSDN博客第 1 种: 通过在查询的 sql 语句中定义字段名的别名,让字段名的别名和实体类 的属性名一致<select id=”selectorder” parametertype=”int” resultetype=”me.gacl.domain.order”>select order_id id, order_no orderno ,order_price price formorders where order_id=#{id};</select>第 2 种: https://blog.csdn.net/qq_38989725/article/details/109744783

5. Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?_北航_Curry的博客-CSDN博客_mybatis查询结果封装对象映射方式1、当列名和封装查询结果的类的属性名一一对应时:这时MyBatis 有自动映射功能,将查询的记录封装到resultType 指定的类的对象中去<mapper namespace="com.hanT.dao.UserDao"> <!--id对应接口中的方法名,resultType为返回结果的类型,要用类的全限定名--> <select id="getUserList" resultType="com.hanT.pojo.User">.https://blog.csdn.net/qq_40643699/article/details/122457087

6. 批量插入,批量删除

Mybatis框架详解IDEA版_素心如月娅的博客-CSDN博客_idea怎么查看mybatis版本重点就是mapper映射https://blog.csdn.net/m0_47010003/article/details/124416756

7. Xml映射文件中,除了常见的select|insert|updae|delete 

Mybatis的XML映射文件中常用标签_素心如月娅的博客-CSDN博客_下面哪些是mybatis中xml文件里使用的标签1. mapper.xml文件中常见标签除了常见的<select>、<insert>、<update>、<delete>标签以外,还有<resultMap>、<parameterMap>(以被弃用)、<sql>、<include>、<selectKey>,加上动态sql的9个标签,trim、where、set、foreach、if、choose、when、otherwise、bind等,其中<https://blog.csdn.net/m0_47010003/article/details/124516230

8. MyBatis如何实现多表查询(一对一、一对多)

MyBatis如何实现多表查询(一对一、一对多)_Kill206的博客-CSDN博客_mybatis一对一和一对多标签MyBatis如何实现多表查询(一对一、一对多)https://blog.csdn.net/weixin_68286174/article/details/125402306

9.Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?_三郎君的博客-CSDN博客_mybatis 是否支持延迟加载?延迟加载的原理是什么?Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,association指的就是一对一,collection指的就是一对多查询。在Mybatis配置文件中,可以配置是否启用延迟加载lazyLoadingEnabled=true|false。它的原理是,使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用a.getB().getName(),拦截器invoke()https://blog.csdn.net/m0_51684972/article/details/110824489

Mybatis整合log4j、延迟加载_素心如月娅的博客-CSDN博客https://blog.csdn.net/m0_47010003/article/details/12721771310. 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

素心如月桠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值