zoukankan      html  css  js  c++  java
  • mybatis和spring3.1整合

    因spring3发布时mybatis还没有出正式版本,所以spring没有整合最新的mybatis.不过社区倒是开发了一个中间件。

    需要的jar包

    mybatis-3.0.6.jar

    mybatis-spring-1.0.2.jar

    要点:

    1.在spring中配置mybatis工厂类

    2.在dao层使用spring注入的的工具bean对数据进行操作

    整合时,可以有四种方式来使用mybatis进行数据处理。

    spring 中必须的配置。

    spring的配置文件中加入以下内容

    Xml代码  收藏代码
    1. <!-- MyBatis配置 -->  
    2.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
    3.         <property name="dataSource" ref="c3p0DataSource" />  
    4.         <property name="configLocation" value="/WEB-INF/config/db/MyBatisConfiguration.xml" />  
    5.         <property name="mapperLocations" value="/WEB-INF/config/db/*Mapper.xml" />  
    6.         <property name="typeAliasesPackage" value="${mybatis.alias.basepackage}" />  
    7.     </bean>  

    1.SqlSessionFactoryBean (必需)

       就是中间件所需的处理类

    2.dataSource  (必需)

       spring中数据源引用

    3.configLocation  (可选)

       Mybatis自身的配置文件,一般用来声明别名

    4.mapperLocation  (可选)

       mybatis的映射文件

    5.typeAliasesPackage (可选)

       要映射类的包路径,如果使用了这种方式,则configLocation中不必再进行声明

    使用mybatis进行数据处理的四种方式(SqlSessionTemplate/SqlSessionDaoSupport/MapperFactoryBean/MapperScannerConfigurer)

    不同方式的特点

    1. SqlSessionTemplate  这个需要写配置文件,在实现类中注入sqlsession,再使用sqlsession,是细颗粒控制
    2. SqlSessionDaoSupport   这个只需要在实现类中继承特殊类就可以使用sqlsession
    3. MapperFactoryBean  这个要写配置文件,把对应的所有接口在配置文件中引用即可,无需写实现类
    4. MapperScannerConfigurer  这个要写配置文件,只要给出接口所在的包即可,会自动把包中的接口引入,无需写实现类
    • SqlSessionTemplate
    1. 配置文件加入新配
      Java代码  收藏代码
      1. <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">  
      2.   <constructor-arg index="0" ref="sqlSessionFactory" />  
      3.   <constructor-arg index="1" value="BATCH" /><!--- 如果想要进行批量操作可加入这个属性 ->  
      4. </bean>  
       
    2. 注入sqlsession()
      Java代码  收藏代码
      1. @Reasource //使用spring3的注解注入  
      2. private SqlSession sqlSession;  
       
    3. 使用sqlsession来进行操作
      Java代码  收藏代码
      1. public User getUser(String userId) {  
      2.     return (User) sqlSession.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);  
      3.   }  
    • SqlSessionDaoSupport(sqlSessionFactory会被spring自动装配,不需要手动注入)
    1. 继承SqlSessionDaoSupport类
      Java代码  收藏代码
      1. public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {  
      2.   
      3. }  
       
    2. 使用getSqlSession()方法取sqlSession来进行数据处理
      Java代码  收藏代码
      1. public User getUser(String userId) {  
      2.     return (User) getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);  
      3.   }  
       
    • MapperFactoryBean
    1. 写配置文件,引入每个DAO接口
      Xml代码  收藏代码
      1. <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">  
      2.   <property name="mapperInterface" value="org.mybatis.spring.sample.mapper.UserMapper" />  
      3.   <property name="sqlSessionFactory" ref="sqlSessionFactory" />  
      4. </bean>  
       
    2. 在业务层可直接注入dao的接口进行操作
    • MapperScannerConfigurer
    1. 写配置文件,配置包名将自动引入包中的所有接口
      Xml代码  收藏代码
      1. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
      2.   <property name="basePackage" value="org.mybatis.spring.sample.mapper" />  
      3. </bean>  
       
    2. 在业务层可直接注入DAO接口操作,注入时使用的是接口名,其首字母小写
    3. 注意:如果有别的实现类,其提供的名称如果是接口名,且首字母小写,则会在启动时出现冲突错误
  • 相关阅读:
    如何禁用Xcode7下iOS9 App传输安全,并修复无法连接服务器错误
    iOS单例清除
    Git忽略规则及.gitignore规则不生效的解决办法
    javascript 在ie8中报“缺少标识符、字符串或数字“问题再现:
    树莓派 远程桌面 设置显示中文
    在IIS Express中调试时无法读取配置文件 错误
    Win7 下IIS(7.5)发布 ASP.NET MVC
    .Net中使用com组件后发生System.ArithmeticException异常的解决办法(Message=算术运算中发生溢出或下溢。)
    CodeSimth
    windows 开机启动 CassiniDev(IIS替代软件)
  • 原文地址:https://www.cnblogs.com/wenlj/p/4608325.html
Copyright © 2011-2022 走看看