我们先来回顾一下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进行依赖注入)