Spring+MyBatis整合
前期准备
需要jar包:mybatis-spring.jar,有mybatis提供该jar包提供的API:SqlSessionFactoryBean:提供SqlSession对象,MyBatis所有操作是围绕SqlSession,SqlSession由SqlSessionFactory获取,SqlSessionFactory是由SqlSessionFactoryBuilder获取。整合时,SqlSessionFactoryBean组件通过SqlSessionFactoryBuilder生产对应的SqlSessionFactory。
(个人理解:即SqlSessionFactoryBuiilder被整合到SqlSessionFactoryBean待求证)
MapperFactoryBean:根据指定Mapper接口生产bean。
MapperFactoryBean根据Mapper获取Mapper对象,封装的是原有的session.getMapper()。需要传入SqlSessionFactoryBean、Mapper对象的mapper接口。(注意:有一个对应的Mapper就像要定义一个MapperFactoryBean,当有Mapper多时,可以使用MapperScannerConfigurer)
MapperScannerConfigurer:根据路径扫描相应Mapper接口并生产实例。
SqlSessionTemplate:可以使用该对象注入到DAO中进行编程,通过该类的方法实现传递参数sql的ID 和参数进行执行DML操作【当前路径下如果不光是我们的Mapper,我们可以使用该类的annotationClass和markerInterface属性来控制】annotationClass:用户指定一个注解标志,指定了annotationClass时,组件只注册用annotationClass注解标记的接口markerInterface:用于指定一个接口,当用markerInterface时,组件只注册继承了markerInterface的接口
具体实例
public @interface MyBatisBasic{
}@Repository
public class PersonDao implements PsersonImp{
@Resource
private SqlSessionTemplate template;
public List
findAllPerson();{
List
persons = template.selectList("findAllPerson");
return persons;
}
}