我正在尝试将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>
请告诉我,这里有什么问题。 提前谢谢。
答案 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>