mybatis和spring整合

搭建环境---导入需要的jar包

另外这里我们不使用c3p0连接池,取而代之的是dbcp连接池(性能似乎没有c3p0好)  把该jar也加入到项目中

classpath路径下:配置如下,创建mybatis文件夹和spring文件夹  分别用来保存他们对应的xml文件(因为将来的配置文件可能非常多  这样使项目结构更加的清晰)

------------------------------------------------

在applicationContext.xml中配置sqlSessionFactory和数据源

    <!-- 数据源,使用dbcp -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="maxActive" value="10" />
        <property name="maxIdle" value="5" />
    </bean>


    <!-- sqlSessinFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 加载mybatis的配置文件 -->
        <property name="configLocation" value="mybatis/SqlMapConfig.xml" />
        <!-- 数据源 -->
        <property name="dataSource" ref="dataSource" />
    </bean>

sqlSessionFactory在mybatis和spring整合包中:

整合测试一:mybatis与spring整合:通过spring管理原始dao对象  进行数据的查询

user.xml

在SqlMapconfig.xml中加载User.xml

接口以及实现类:

注意:实现类中继承SqlSessionDaoSupport类  来得到sqlSession  所以在配置该类bean对象时  需要注入sqlSessionFactory,  

就像hibernate框架中的一样  dao实现类继承SesssionFactoryDaoSupport  在配置实现类对应的bean的时候  也是需要注入sessionfactory对象的

然后再applicationContext.xml中配置dao对应的bean对象

测试:因为此时项目是java项目  不需要部署项目到服务器   选择手动加载spring.xml文件  所以此时不需要配置spring核心配置文件的监听器(web.xml中)  手动加载该配置文件

结果:

整合测试二:mybatis与spring整合:通过spring管理mapper代理对象  进行数据的查询

1.通过配置bean对象的方式

mapper映射文件和mapper接口

在mybatis核心配置文件中加载映射文件

配置bean:    通过MapperFactoryBean创建代理对象

测试:

2.通过注解方式  扫描创建bean对象

 

而且此时在SqlMapConfig.xml中  加载mapper映射文件的代码可以删除了  但是注意上边需要遵循的规范

----------------------------------

原文地址:https://www.cnblogs.com/Joke-Jay/p/7507453.html