【Spring】整合Mybatis两种方式

我们先来回顾一下mybatis如何进行增删改查。

1.首先我们需要一个接口UserMapper里面写一个抽象方法。

 

 2.我们需要对于此接口进行mapper映射,所以需要新设一个UserMapper.xml文件 

 

 3.接下来我们需要进行mabatis的配置文件的书写

(1)数据源datasource(配置数据库)

 

 

 (2)sqlSessionFactoryBuilder——》sqlSessionFactory——》sqlSession

需要手动进行new新对象 手动生成sqlSession

可以将生成sqlSeesion声明为一个工具类

 

 

 

方式一:sqlSession声明为bean

(1)数据源

使用spring-jdbc代替mabatis的配置文件 连接数据库

(这个随意 可以用其他 dbcp durib)

 

 (2)sqoSessionFactory  对应的是spring包下的SqlSessionFactoryBean类

在下面需要配置刚才的数据源

以及mybatis的其他设置

 

 

 

 (3)sqlSession在spring里面叫做sqlSessionTemplate。

(由于没有set方法,不能使用set方法注入。所以只能选择构造器注入 注入sqlSessionFactory。

 

 (4)将接口新建一个实现类

(因为spring管理的是对象 所以变成类方便管理)

 

 我们注意观察在这个实现类中有一个sqlSessionTemplate类型的对象。

我们使用spring的set方式进行依赖注入。详情见(5)

我们这里实现的query 实际上就是mybatis的语法:

回顾一下mybatis的方法:接口里面有抽象方法,然后对于接口建立一个mapper.xml 里面放进去抽象方法对应的sql语句。

在测试时,从工具类获得sqlSession然后调用sqlSession的getMapper。然后用mapper进行调用方法。

在这里的方法:

前面步骤都是一样的,只不过对象的操作都交给了spring。

我们在实现类中放进去一个sqlsessionTemplate,因为在方法需要用到sqlSessionTemplate进行getMapper。

然后mapper调用mapper.xml里面的sql

(5)使用set进行依赖注入

 

 

 

方式二、sqlSession不需要注册为bean

 

 在这种情况下可以将spring里面的sqlSession的注册删除掉

通过继承sqlSessionDaoSupport 使用getSqlSession方法 直接得到sqlSession

(注意 注册此实现类时 需要将SqlSessionFactory进行依赖注入)

 

posted @ 2021-02-07 23:23  枫叶像思念  阅读(303)  评论(0编辑  收藏  举报