@wxf
2018-03-03T12:46:19.000000Z
字数 616
阅读 741
MyBatis相关问题整理
面试系列
MyBatis与Hibernate有哪些不同
- MyBatis不是一个完全的ORM框架,它可以通过XML或注解方式灵活配置sql语句,并将Java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成Java对象。
- MyBatis无法做到数据库无关性,如果需要实现支持多种数据库则需要自定义多套sql映射文件。实现方式:MySQL与Oracle通过配置切换
使用MyBatis的mapper接口调用时有哪些要求
- Mapper接口方法名和mapper.xml中定义的每个sql的id相同
- Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同
- Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
- Mapper.xml文件中的namespace即是mapper接口的类路径。
MyBatis中#{}与${}的区别
#{}在预处理时,会把参数部分用一个占位符‘?’代替,可以防止SQL注入;而${} 则是将传入的数据直接显示生成在sql中,不能防止SQL注入。
MyBatis中处理>、<
使用XML转移字符
显示结果 |
描述 |
实体名称 |
< |
小于号 |
<; |
> |
大于号 |
>; |
& |
和 |
&; |
' |
单引号 |
&apos; |
" |
双引号 |
"; |
使用<![CDATA[ ]]>符号
参考资料:Mybatis总结以及在面试中的一些问题