Spring与Mybatis整合

首先把一些mybatis和spring的jar包放在web项目的web-inf下的lib包里。

Spring与Mybatis整合_第1张图片

然后建立开发目录结构,举个列子:

Spring与Mybatis整合_第2张图片

然后放入一些配置文件,我习惯建个resources包来放配置文件Spring与Mybatis整合_第3张图片

mapper包就是常用的dao包。里面有一些业务方法,和sql映射文件,可以用来配置sql映射。

Spring与Mybatis整合_第4张图片

然后配置mybatis的配置文件。

之后配置我们的spring配置文件,包括配置数据源之类的。

Spring与Mybatis整合_第5张图片

第一个是读取jdbc配置。用于数据库连接。

第二个是sqlSessionfactorybean,只有得到了sqlSessionfactory的实例,就可以进一步获取sqlsession实例数据库的操作了。

第三个是使用mapperScannerCOnfigurer注入映射器,他可以扫描指定的包,并将他们直接注册为mapperFactorybean。

Spring与Mybatis整合_第6张图片

我们在service里调用dao类的方法实现功能。他就会自己扫包来创建这个bean,因为是自动创建所以他们给bean的id一般是

小写字母开头。

可以看到我最后除了扫包还引入了一个xml文件,那个是事务管理用的。为了好管理做的一个区分。

来看下事务管理得配置文件。

Spring与Mybatis整合_第7张图片

第一个bean用于创建事务bean,通过标签配置事务增强,设定事务的属性,为不同的业务方法指定具体的事务规则。

都知道method是方法的意思,name值为“add*”大家也猜到了就是方法名为add开头的,一般我用add开头标识添加方法,

propagation="REQUIRED" :他是默认值,表示如果存在一个事务,则支持当前事务,如果没有事务,则开启一个新的事务。

他的其他属性值网上也可以搜到。

isolation="DEFAULT":这个是事务的隔离级别,默认值,表示数据库默认的隔离级别。

最后一个就是表示是否只读了,true为只读一般用于查询操作。

最后就是定义切面了,和事务的引用。

事务也有注解:

@Transactional

@Transactional(里面可以指定事务的属性)

感觉不如第一种方便。

这就是spring和mybatis的一些整合。


你可能感兴趣的:(Spring与Mybatis整合)