一、Spring整合Mybatis的原理
1、目的:把mybatis框架和spring框架集成在一起, 像一个框架一样使用。
2、用的技术是:spring中ioc的思想
3、为什么要用ioc?
能把mybatis和spring集成在一起, 像一个框架,是因为ioc能创建对象。
可以把mybatis框架中的对象交给spring统一创建, 开发人员从spring容器中获取对象。开发人员就不用同时面对两个或多个框架了,就面对一个spring即可
二、回顾mybatis使用步骤
1、大体思路:
(1)定义dao接口,如:studentDao;
(2)定义mapper文件studentDao . xml;
(3)定义mybatis的主配置文件mybatis.xml;
(4)创建dao的代理对象。
studentDao dao = Sq1Session . getMapper (studentDao.class) ;
List<student .> students = dao. selectstudents() ;
2、要使用dao对象,需要使用getMapper ()方法,怎么能使用getMapper()方法,需要哪些条件呢?
(1)获取sqlSession对象,需要使用sqlSessionfactory的opensession()方法;
(2)创建SqlSessionFactory对象。通过读取mybatis的主配置文件,能创建sq1SessionFactory对象;
(3)需要sqlSessionFactory对象,使用Factory能 获取sqlSession,有了sqlSession就能有dao,目的就是获取dao对象Factory创建需要读取主配置文件。
小结:想获得dao对象 --> sqlSession对象 --> sqlSessionFactory对象调用opensession()方法 --> 读取mybatis的主配置文件
3、主配置文件:
(1)数据库信息
(2)mapper文件的位置
4、通过以上的说明,我们需要让spring创建以下对象
(1)独立的连接池类的对象,使用阿里的druid连接池
(2)SqlSessionFactory对象
(3)创建出dao对象
三、Spring整合Mybatis
依赖
1、引入依赖
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--spring-test(对JUnit的封装)-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.8.RELEASE</version>
<scope>test</scope>
</dependency>
<!--ioc核心-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<!--德鲁伊连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.23</version>
</dependency>
<!--驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<!--事务-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<!--事务相关-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<!--mybatis与spring集成的依赖