首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

mybatis与spring3.1调整

2013-07-04 
mybatis与spring3.1整合因spring3发布时mybatis还没有出正式版本,所以spring没有整合最新的mybatis.不过社

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代码??mybatis与spring3.1调整
  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)

不同方式的特点

    SqlSessionTemplate? 这个需要写配置文件,在实现类中注入sqlsession,再使用sqlsession,是细颗粒控制SqlSessionDaoSupport?? 这个只需要在实现类中继承特殊类就可以使用sqlsessionMapperFactoryBean? 这个要写配置文件,把对应的所有接口在配置文件中引用即可,无需写实现类MapperScannerConfigurer? 这个要写配置文件,只要给出接口所在的包即可,会自动把包中的接口引入,无需写实现类
    SqlSessionTemplate
      配置文件加入新配
      Java代码??mybatis与spring3.1调整
      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>??
      ?注入sqlsession()
      Java代码??mybatis与spring3.1调整
      1. @Reasource?//使用spring3的注解注入??
      2. private?SqlSession?sqlSession;??
      ?使用sqlsession来进行操作
      Java代码??mybatis与spring3.1调整
      1. public?User?getUser(String?userId)?{??
      2. ????return?(User)?sqlSession.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser",?userId);??
      3. ??}??
      SqlSessionDaoSupport(sqlSessionFactory会被spring自动装配,不需要手动注入)
        继承SqlSessionDaoSupport类
        Java代码??mybatis与spring3.1调整
        1. public?class?UserDaoImpl?extends?SqlSessionDaoSupport?implements?UserDao?{??
        2. ??
        3. }??
        ?使用getSqlSession()方法取sqlSession来进行数据处理
        Java代码??mybatis与spring3.1调整
        1. public?User?getUser(String?userId)?{??
        2. ????return?(User)?getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser",?userId);??
        3. ??}??
        ?
        MapperFactoryBean
          写配置文件,引入每个DAO接口
          Xml代码??mybatis与spring3.1调整
          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>??
          ?在业务层可直接注入dao的接口进行操作
          MapperScannerConfigurer
            写配置文件,配置包名将自动引入包中的所有接口
            Xml代码??mybatis与spring3.1调整
            1. <bean?class="org.mybatis.spring.mapper.MapperScannerConfigurer">??
            2. ??<property?name="basePackage"?value="org.mybatis.spring.sample.mapper"?/>??
            3. </bean>??
            ?在业务层可直接注入DAO接口操作,注入时使用的是接口名,其首字母小写注意:如果有别的实现类,其提供的名称如果是接口名,且首字母小写,则会在启动时出现冲突错误

热点排行