zoukankan      html  css  js  c++  java
  • mybatis系列-16-spring和mybatis整合

    16.1     整合思路

      需要spring通过单例方式管理SqlSessionFactory。

      spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。(spring和mybatis整合自动完成)

      持久层的mapper都需要由spring进行管理。

    16.2     整合环境

      创建一个新的java工程(接近实际开发的工程结构)

      jar包:

      mybatis3.2.7的jar包

      spring3.2.0的jar包

      mybatis和spring的整合包:早期ibatis和spring整合是由spring官方提供,mybatis和spring整合由mybatis提供。

     

      全部jar包

     

     

    16.3     sqlSessionFactory

      在applicationContext.xml配置sqlSessionFactory和数据源

      sqlSessionFactory在mybatis和spring的整合包下。

      <!-- 加载配置文件 -->
       <context:property-placeholder location="classpath:db.properties" />
    
       <!-- 数据源,使用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>

    16.4     原始dao开发(和spring整合后)

    16.4.1     User.xml

     

      在SqlMapconfig.xml中加载User.xml

     

    16.4.2     dao(实现类继承SqlSessionDaoSupport)

     

      dao接口实现类需要注入SqlSessoinFactory,通过spring进行注入。

      这里spring声明配置方式,配置dao的bean:

      让UserDaoImpl实现类继承SqlSessionDaoSupport

     

    16.4.3     配置dao

      在applicationContext.xml中配置dao。

     

    16.4.4     测试程序

     

    16.5     mapper代理开发

    16.5.1     mapper.xml和mapper.java

     

    16.5.2     通过MapperFactoryBean创建代理对象

     

      此方法问题:

      需要针对每个mapper进行配置,麻烦。

    16.5.3     通过MapperScannerConfigurer进行mapper扫描(建议使用)

     

    16.5.4     测试代码

     

  • 相关阅读:
    Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean
    python 获取近几周日期
    vue node Failed at the iview-admin
    python 读取xls文件
    java正则解析ip
    JAVA操作Mongo 数组模糊查询
    Error connecting to the Service Control Manager: 拒绝访问 Mongodb问题-解决
    Voletile-多线程小例子
    新建VUE项目操作步骤(win7)
    mpvue开发小记
  • 原文地址:https://www.cnblogs.com/ChinaHook/p/5533622.html
Copyright © 2011-2022 走看看