Spring与MyBatis集成
在上一篇文章中,我用Java类实现了Spring配置的Web容器启动,并且还做了上传文件的测试,今天我就来集成MyBatis
,搭建数据库访问层。
添加依赖
与Hibernate
依赖添加不同是,我们添加MyBatis
只用添加两个依赖
,在写这篇记录的时候,我选用的最新版本如下所示。
配置RootConfig
在第一篇提到的RootConfig
下面添加如下的Bean配置
首先我们需要配置一个数据连接池,这是开发标配,我采用了阿里开源的Druid
,在这里一些配置一些简单的数据库地址用户密码就好。不要问我为什么不用配置文件,我试了很多次,都报了空指针错误,蛋疼ing。。。(心碎状)
再下来,我们需要配置MyBatis必须的SqlSessionFactory
,但是要与Spring集成的话,我们要去配置org.mybatis.spring
包下的SqlSessionFactoryBean
。
由于MyBatis官方文档中推荐的是XML配置,所以我选择了这种方式,怎么稳妥怎么来。
配置SqlSessionFactoryBean
,一般要指明要用的DateSource数据源,Mapper文件的所在文件夹,还有就是被映射的Model包,MyBatis的总配置文件(也就是sqlSessionFactory.setConfigLocation(new ClassPathResource("config.xml"));
这段代码)不需要明确指出,可指可不指。
MapperScannerConfigurer
是要去找对应的Dao接口的,我们都知道,使用MyBatis的特点之一就是Dao用接口,用mapper文件写Sql语句,最后由MyBatis给我们具体实现对数据库的操作。
DataSourceTransactionManager
:如果想使用事务,那么这个类是不能缺少的,看名字就知道了嘛
不知道有没有小伙伴注意到我的SqlSessionFactoryBean
配置了name属性,这个是为了后面跟Shiro集成用的,留点小期待吧~
完成Dao层
数据库建表的DDL
在这里我使用了开涛大神给出的一个参考DDL
其实主要就是三个表
- 用户表
sys_users
- 角色表
sys_roles
- 权限表
sys_permissions
三个Dao对象
|
|
为了方便,我只是用了查询。对应的也就是简单的select语句,会有left join操作,没什么好写的了,我直接给出mapper的源码吧
UserDao.xml
|
|
RoleDao.xml
|
|
PermissionDao.xml
|
|
至此,不妨做个单元测试,去验证对错吧!