与mybatis-spring集成问题

问题描述:

我正在尝试将mybatis.I和Spring集成在一起。我已经完成了所有的配置。 我有以下版本: 春:3.0.6 的MyBatis:3.0.6 MyBatis的弹簧:1.0.2与mybatis-spring集成问题

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

然后我切换到MyBatis的弹簧-1.2.0 现在使用这个罐子,在服务器启动时,我得到以下错误消息:用于

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

基本上我与得到罐子的完美结合春季挣扎+ ibatis configuration.Can任何已经在spring + my上工作过的人batis集成可以让我知道哪些版本是可以互相兼容的。最新的我尝试了mybatis-3.0.4和mybatis-spring-1.0.0和spring-3.0.5,但是我得到了以下的exceptionorg.apache.ibatis.builder。 xml.XMLConfigBuilder。 (Ljava/IO/InputStream的; Ljava /郎/字符串; Ljava/util的/属性;)V \t在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) – user2603985 2014-09-06 17:15:58

+0

余改变为以下jars:Spring:3.0.6,mybatis-3.0.6,mybatis-spring-1.0.0和以上的异常都没有了,但现在我得到以下异常:在ServletContext资源中定义的名为'sqlSessionFactory'的bean创建错误[/ WEB -INF/applicationContext.xml]:调用init方法失败;嵌套异常是org.apache.ibatis.builder.BuilderException:创建文档实例时出错。原因:java.net.ConnectException:连接超时:connect – user2603985 2014-09-06 17:56:48

+0

连接超时通常意味着存在数据库连接错误? – 2014-09-10 14:50:20

这个班属于Ibatis而不是MyBatis。确保你有Ibatis作为直接依赖或传递依赖。

我设置这种方式:

<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>