ibatis 源于intemet 和 abatis 的组合
* Mybatis 是优秀的持久层框架,支持普通SQL 查询,存储过程和高级映射优秀持久层框架
* MyBatis 封装了几乎所有的jdbc 代码和参数的手工设置以及结果集的检索。
* MyBatis 使用简单的XML 或者注解作配置和定义映射关系,将java 的pojos(普通的java类) 映射成数据库中的记录
有两种配置文件:
*SqlMapCofig.xml
主配置文件,用来指定数据库的连接参数和框架参数
*SqlMap.xml
映射定义文件,定义SQL语句和java类的映射信息。
在使用mybatis 框架时,主要涉及以下几个API
SqlsessionFactoryBuilder sql工场建造器
该对象负责根据Mybatis 配置文件 sqlMapConfig.xml
创建SqlSessionFactory 对象
SqlSessionFactory
每一个MyBatis的应用程序都以一个SqlSessionFactory 对象为核心,
负责创建SqlSession 对象
SqlSession
SqlSession 包含了所有执行Sql 操作的方法,用于执行已映射的SQL 语句
映射使用技巧
--Mapper 映射
--ResultMap 映射结果
在定义<select> 操作时,如果查询结果的字段名和java类的属性不一致时,需要使用<resultMap> 元素指定映射关系
Spring 与MyBatis整合 :
需要导入--mybatis-spring-1.3.1.jar
它提供了整合相关的几个关键api:
*SqlSessionFactoryBean
--- 为整合应用提供SqlSession 对应资源
*MapperFactoryBean
---根据指定Mapper 接口生成Bean实例
*MapperScannerConfigurer
---根据指定的包backPackage批量扫描Mapper 接口并且生成实例
*MapperScannerConfigurer
如果指定的某个包并不完全是我们定义的Mapper接口,可以使用分包和另外的两个属性缩小和注册范围
* annotationClass 用于指定一个注解标记,当指定了 annotationClass 时,MapperScannerConfigruer
将只注册使用了 annotationClass 注解标记的接口。
* markerInterface
用于指定一个接口,当指定 markerInterface 时,MapperScannerConfigure 将注册继承自MarkerInterface的接口
SqlSessionTemplate 封装SqlSession
我们可以使用mybatis-spring.jar 里的sqlSessionTemplate组件,
该组件可以注入到Dao 中,在Dao 中利用SqlSessionTemplate 编程。