Spring整合Mybatis
本文讲述Spring整合Mybatis ,先写一个Mybatis的案例,然后由Mybatis过渡到Spring的方式,并且测试事务是否整合成功
工具:idea
第一步:在pom.xml里面导入相应的依赖
1 | <!-- |
第二步:新建数据库Account
第三步:创建Account实体类
1 | package com.offcn.bean; |
第四步:创建接口文件 AccountDao
1 | package com.offcn.dao; |
第五步:编写AccountMapper.xml文件,书写sql代码
1 | <?xml version="1.0" encoding="UTF-8"?> |
第六步:写mybatis的配置文件mybatis-config.xml
1 | <?xml version="1.0" encoding="UTF-8" ?> |
数据库连接配置文件db.properties
1 | jdbc.driverClassName=com.mysql.jdbc.Driver |
接着创建测试文件AccountTest
1 | package com.offcn.test; |
到此的目录结构为
这是Mybatis的做法,然后整合Spring
第一步:创建beans.xml文件,把mybatis-config.xml里面的内容进行整合
- 读取db.properties配置文件
1 | <!--读取db.properties配置文件--> |
- 使用连接条件将文件加载到数据库(mybatis-config.xml的数据库连接条件配置文件就不用写了)
1 | <!-- 使用连接条件将文件加载到数据库--> |
- 用数据源配置事务管理器(mybatis-config.xml的整个environment标签就不在用了)
1 | <!-- 事务管理配置--> |
- 管理Mybatis核心对象 sqlSessionFactory(因为要用mybatis-spring.jar里面的工具类)
管理myBatis核心对象sqlSessionfactory
这样test测试文件里面的配置就被整合到了这里,这个标签源码里面将他们进行了整合,都变成了一个个的属性,采用setter注入的方法
在把config里面的剩下的mapper拿过来,这样config里面就没有东西了
classPath表示类路径
1 | <!-- |
到这里mybatis-config.xml这个文件就可以删除(当然也可以不删除,如果加载缓存在这个文件里面的话)
到这里整个beans.xml文件内容如下
1 | <?xml version="1.0" encoding="UTF-8"?> |
如果要加载mybatis的核心,比如二级缓存啊啥的,也可以加载进来
如果要加入分页插件的话先引入相关jar包,然后进行配置
如果要想进行包扫描
还想加啥属性就是接着写property这个标签就好了生成接口代理对象 起点工厂 中间封装 最后代理对象
接着新开一个bean标签 MapperScanner扫描 直接写class就行
1 | </bean> |
下面这个value的值就是上面bean的name值
现在整个beans.xml的文件内容
1 | <?xml version="1.0" encoding="UTF-8"?> |
进行测试:
1 | package com.offcn.test; |
到现在的目录文件结构为
检查事务是否成功
创建对应的包
AccountService
1 | package com.offcn.service; |
AccountServiceImpl
1 | package com.offcn.service; |
如果想要用事务的话价格注解就可以
- beans.xml里面扫描添加的注解工具类
- 最后进行测试
报错说明控制住了
现在把错误放开检查是否成功
在AccountServiceImpl里面
在进行测试成功插入,事务控制成功
事务是加给Service的,不是加给dao的,所以注解要写在service里面
至此整合完毕,并且事务测试成功