A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 长沙-小知姐姐 黑马粉丝团   /  2018-12-28 13:59  /  1244 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 长沙-小知姐姐 于 2019-1-3 09:32 编辑





Spring框架与mybatis整合概述
现在做为java开发的程序员,我相信基本上每个人都听说过Spring框架,而现在mybatis框架也逐渐的替代了原来的一些持久层框架,成为了持久层框架的标配了,在实际项目中做开发的时候,mybatis框架往往都是和Spring框架一起使用,这样mybatis框架使用起来就更加简单了。今天我们就一起来讨论一下Spring框架和mybatis框架的一起使用的时候的一些细节(整合细节)

Spring框架与mybatis整合细节
mybatis基本使用

mybatis作为一个持久层框架,现在在企业开发中大行其道,这个框架本身有很多优点,但是我们在这里就不再赘述,把重点放到Spring和mybatis整合部分的知识点上,在理解Spring与mybatis框架整合之前,先看看mybatis的使用的基本代码实现

前提:假设现在数据库中有一张表user


第一步:创建一个实体类与数据库中user表中字段对应(可以不对应,通过配置可以配置映射关系,但是为了方便这里直接让数据库表中字段和实体类中属性名字相同),实体类和表如下:

屏幕快照 2018-12-28 下午1.54.36.png


第二步:编写Dao接口与接口的映射文件

屏幕快照 2018-12-28 下午1.55.46.png


第三步:编写mybatis的主配置文件

屏幕快照 2018-12-28 下午1.56.49.png

mybatis运行的基本过程
上面我们已经知道了mybatis在使用的时北候京需市要昌做平的区事建情材,城创西建路了金和燕数龙据办库公表楼相一对层应的电视话图:类400,创-618建了-9090操作这张表的Dao接口和和Dao接口对于的映射配置文件,创建了mybatis的主配置文件SqlMapConfig.xml,接下来就一起来看看mybatis运行的基本执行过程, mybatis的运行代码如下图:
屏幕快照 2018-12-28 下午1.57.37.png
从mybatis的执行过程中可以看出来,mybatis就是通过加装配置文件构建出来各种执行数据库操作的SqlSession,产生Dao代理对象,从而执行Dao映射的


statement。

mybatisSpring整合

从上面mybatis的执行过程可以看出来,mybatis在执行的过程中需要加载配置,构建SqlSessionFactory才能去做他接下来的一系列操作,但是我们在实际开发中每次都去这样通过代码操作mybatis显然不太可取,Spring就为我们解决了这个问题,只要完成Spring框架和mybatis的整合,就可以让我们不再需要编写mybatis执行过程的代码了,要彻底掌握mybatis与Spring整合,那么就需要去理解以下三个问题:

1.为什么要整合(整合的目的)
先看一段真实案例中的代码
屏幕快照 2018-12-28 下午1.58.49.png

在实际开发中我们一般是在service中直接通过SpringDI注入Servicedao属性,所以这个时候Dao对象必须也要存在Spring容器中才行,换句话就是Spring必须帮助我们去创建原本本来应该由mybatis的创建的一些Dao对象

2.spring整合mybatis的原理


从前面的mybatis执行流程中可以看出来,mybatis框架要创建dao代理对象,第一件事情就是要加载主配置文件,构建SqlSessionFactory对象,只有有了SqlSessionFactory对象,mybatis才能做后续的操作,所以spring整合mybatis的原理要做的事情就是让Spring帮助我们去创建mybatis的SqlSessionFactory对象
Spring要想去创建SqlSessionFactory,那么在Spring中就必须去加载mybatis的配置信息,其实我们是可以在Spring配置文件中去配置mybatis的配置信息的,配置如下图

屏幕快照 2018-12-28 下午2.02.51.png
从这里可以看到我们可以把原来在mybatis的主配置文件中的配置配置到Spring配置文件中,从而让Spring去创建SqlSessionfactory。这样spring和mybatis整合就算完成了,但是这里要注意,我们只是做了整合操作,其实mybatis在执行增删改操作的时候是需要提交事务的,还需要去配置Spring的事务,但是这里就不再去讲解Spring事务如何配置了

总结
spring框架在整合mybatis的时候,其实我们主要的目的就是要将原来本来应该由程序去调用mybatis代码产生Dao代理对象的过程交给了Spring,我们在Spring配置文件中可以去配置mybatis的配置信息,从而让Spring帮我们去创建了mybatis相关的对象,从而去管理Dao对象


1 个回复

倒序浏览
看一看。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马