5.mybatis使用?(与ibatis异同) herbernate使用?参考 https://blog.csdn.net/a745233700/article/details/80977133
称Mybatis是半自动ORM映射工具,是因为在查询关联对象或关联集合对象时,需要手动编写sql来完成。不像Hibernate这种全自动ORM映射工具,Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取。 #{}和${}的区别是什么? ${}是字符串替换,#{}是预处理; Mybatis在处理${}时,就是把${}直接替换成变量的值。而Mybatis在处理#{}时,会对sql语句进行预处理,将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值; 使用#{}可以有效的防止SQL注入,提高系统安全性。 Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复? 不同的Xml映射文件,如果配置了namespace,那么id可以重复;如果没有配置namespace,那么id不能重复; Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式? 第一种是使用<resultMap>标签,逐一定义数据库列名和对象属性名之间的映射关系。 第二种是使用sql列的别名功能,将列的别名书写为对象属性名。 Mybatis动态sql有什么用?执行原理?有哪些动态sql? Mybatis动态sql可以在Xml映射文件内,以标签的形式编写动态sql,执行原理是根据表达式的值 完成逻辑判断 并动态拼接sql的功能。 Mybatis提供了9种动态sql标签:trim | where | set | foreach | if | choose | when | otherwise | bind。 Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签? <resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,加上动态sql的9个标签,其中<sql>为sql片段标签,通过<include>标签引入sql片段,<selectKey>为不支持自增的主键生成策略标签。 使用MyBatis的mapper接口调用时有哪些要求? Mapper接口方法名和mapper.xml中定义的每个sql的id相同; Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同; Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同; Mapper.xml文件中的namespace即是mapper接口的类路径。 spring解说 结构?参考 https://www.cnblogs.com/yanggb/p/11004887.html https://www.cnblogs.com/zipon/p/5773735.html applicationContext.xml的内容详解与配置? springmvc解说 结构? springboot原理及解说!?https://segmentfault.com/a/1190000016686735 5.springcloud微服务框架? 组件解释: