Spring与Mybatis整合
首先把一些mybatis和spring的jar包放在web项目的web-inf下的lib包里。
然后建立开发目录结构,举个列子:
然后放入一些配置文件,我习惯建个resources包来放配置文件
mapper包就是常用的dao包。里面有一些业务方法,和sql映射文件,可以用来配置sql映射。
然后配置mybatis的配置文件。
之后配置我们的spring配置文件,包括配置数据源之类的。
第一个是读取jdbc配置。用于数据库连接。
第二个是sqlSessionfactorybean,只有得到了sqlSessionfactory的实例,就可以进一步获取sqlsession实例数据库的操作了。
第三个是使用mapperScannerCOnfigurer注入映射器,他可以扫描指定的包,并将他们直接注册为mapperFactorybean。
我们在service里调用dao类的方法实现功能。他就会自己扫包来创建这个bean,因为是自动创建所以他们给bean的id一般是
小写字母开头。
可以看到我最后除了扫包还引入了一个xml文件,那个是事务管理用的。为了好管理做的一个区分。
来看下事务管理得配置文件。
第一个bean用于创建事务bean,通过<tx:advice>标签配置事务增强,设定事务的属性,为不同的业务方法指定具体的事务规则。
都知道method是方法的意思,name值为“add*”大家也猜到了就是方法名为add开头的,一般我用add开头标识添加方法,
propagation="REQUIRED" :他是默认值,表示如果存在一个事务,则支持当前事务,如果没有事务,则开启一个新的事务。
他的其他属性值网上也可以搜到。
isolation="DEFAULT":这个是事务的隔离级别,默认值,表示数据库默认的隔离级别。
最后一个就是表示是否只读了,true为只读一般用于查询操作。
最后就是定义切面了,和事务的引用。
事务也有注解:
@Transactional
@Transactional(里面可以指定事务的属性)
感觉不如第一种方便。
这就是spring和mybatis的一些整合。