首页 > 其他 > 详细

1.3 mybatis常识!

时间:2021-09-16 16:13:15      阅读:44      评论:0      收藏:0      [点我收藏+]

mybatis使用?(与ibatis异同)https://blog.csdn.net/a745233700/article/details/80977133

 
Mybatis是半自动ORM映射工具,是因为在查询关联对象或关联集合对象时,要手动编写sql来完成
不像Hibernate这种全自动ORM映射工具,Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取
 
1.#{}和${}的区别是什么? ${}是字符串替换,#{}是预处理
 
Mybatis在处理${}时,就是把${}直接替换成变量的值。而Mybatis在处理#{}时,会对sql语句进行预处理,将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
使用#{}可以有效的防止SQL注入,提高系统安全性。
 
2.Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
不同的Xml映射文件,如果配置了namespace,那么id可以重复;如果没有配置namespace,那么id不能重复
3.Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
第一种是使用<resultMap>标签,逐一定义数据库列名和对象属性名之间的映射关系。
第二种是使用sql列的别名功能,将列的别名书写为对象属性名。
4.Mybatis动态sql有什么用?执行原理?有哪些动态sql?
 
Mybatis动态sql可以在Xml映射文件内,以标签的形式编写动态sql,执行原理是根据表达式的值 完成逻辑判断 并动态拼接sql的功能
 
Mybatis提供了9种动态sql标签:trim | where | set | foreach | if | choose | when | otherwise | bind。
 
5.0Xml映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?
 
<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>加上动态sql的9个标签,其中<sql>为sql片段标签,通过<include>标签引入sql片段,<selectKey>为不支持自增的主键生成策略标签。
 
6.使用MyBatis的mapper接口调用时有哪些要求?
 
1.Mapper接口方法名和mapper.xml中定义的每个sql的id相同;
 
2.Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同;
 
3.Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同;
 
4.Mapper.xml文件中的namespace即是mapper接口的类路径。

1.3 mybatis常识!

原文:https://www.cnblogs.com/zl-programmer/p/15267882.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!