1、mybatis 介绍 : mybatis是一个持久层框架,他是对jdbc的完美的封装
2、mybatis和hibernate的区别 :
1、Mybatis不是一个完全的ORM的框架,hibernate是一个完全的ORM的框架
2、工作效率: mybatis的开发的工作量相对较大,hibernate的开发效率比较高
3、SQL灵活:mybatis支持自定义sql,对SQL的支持较好。hibernate对SQL支持相对较差
4、没有更好的框架,只有最适合的框架。要根据当前的业务、场景来决定选择哪种框架
3、Mapper的代理方式 :
1、接口的权限定类名要和mapeer的映射文件中的namespace一致
2、接口的方法名称要和映射文件中statementId 保持一致
3、接口的方法的 参数类型 要和 映射文件中的 parameterType 保持一致
4、接口的方法的返回值类型要和 映射文件中的 resultType 保持一致
4、 #{}和${} 区别 :
#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。 #{}可以接收简单类 型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。
${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。
5、配置内容 :
SqlMapConfig.xml中配置的内容和顺序如下:
properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
mappers(映射器)