mybatis-spring集成问题

时间:2014-09-06 15:07:11

标签: mybatis

我正在尝试将spring与mybatis集成。我已经完成了所有的配置。 我有以下版本: 春天:3.0.6 Mybatis:3.0.6 mybatis-spring:1.0.2

当我使用上面的jar组合时,在tomcat的启动时,它会抛出SqlSessionFactoryBean classNotFound的异常,当我实际检查mybatis-spring-1.0.2 jar时,SqlSessionFactoryBean实际上并不存在。

然后我切换到mybatis-spring-1.2.0 现在使用这个jar,在服务器启动时,我收到以下错误消息:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.mybatis.spring.SqlSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/ibatis/mapping/VendorDatabaseIdProvider

使用的配置是:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <!-- org.springframework.jdbc.datasource.DriverManagerDataSource" -->
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@10.10.10.10:1521:xe"/>
        <property name="username" value="uname"/>
        <property name="password" value="pwd"/>
    </bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
        <property name="configLocation" value="/WEB-INF/mybatis-config.xml"/> 
    </bean>

<bean id="transactionDao" class="com.abc.daoImpl.TransactionDaoImpl">
        <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean>

请告诉我,这里有什么问题。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

这个类属于Ibatis而不是MyBatis。确保您将Ibatis视为直接依赖或传递依赖。

答案 1 :(得分:0)

我这样设置:

                                

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource" />
</bean>


<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="typeAliasesPackage" value="mx.com.dctechnology.model"/>
  <property name="mapperLocations" value="classpath*:mx/com/dctechnology/dao/maps/*.xml" />
</bean>


<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
  <constructor-arg index="0" ref="sqlSessionFactory" />
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="mx.com.dctechnology.dao" />
</bean>

在pom.xml中使用:

<mybatis.version>3.4.1</mybatis.version>
<mybatis-spring.version>1.3.0</mybatis-spring.version>


<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>${mybatis.version}</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>${mybatis-spring.version}</version>
</dependency>