2 yt1037921169 yt1037921169 于 2016.03.10 17:26 提问

spring+ibatis 事务错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'studentdao' defined in URL [file:/E:/资料/apache-tomcat-6.0.29/webapps/firstibatis/WEB-INF/classes/spring/applicationContext-jdbc.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'driverClassName' of bean class [dao.impl.StudentDaoImpl]: Bean property 'driverClassName' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1427)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1132)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)

xml配置文件如下:


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

       <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">  

        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>  

        <property name="url" value="jdbc:mysql://127.0.0.1/student"/>  

        <property name="username" value="root"/>  

        <property name="password" value="root"/>  

    </bean>  

<!--配置哪些方法,什么情况下需要回滚-->


tx:attributes

<!--当代理的service层中的方法抛出异常的时候才回滚,必须加rollback-for参数-->





<!--除了上面标识的方法,其他方法全是只读方法 -->


/tx:attributes

/tx:advice

<!-- 配置哪些类的方法需要进行事务管理 -->







/aop:config

<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">  
       <property name="configLocation"><value>classpath:config/jdbc/sqlMapConfig.xml</value></property>  
 </bean>  
<bean id="studentdao" class="dao.impl.StudentDaoImpl">
    <property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
<bean id="studentmanager" class="manager.impl.StudentManagerImpl">
    <property name="studentdao" ref="studentdao"></property>
</bean>




    studentdaoimpl

      public class StudentDaoImpl   extends SqlMapClientDaoSupport implements StudentDao{

@Override
public List<Student> getAllStudent() {
    // TODO Auto-generated method stub
    return null;
}

@Override
public Student getStudentById(String id) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public List<Object> select(String name) throws Exception {
    // TODO Auto-generated method stub
    return null;
}

@Override
public List<Student> selects(Map map) throws Exception {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void tianjia(Map map) throws Exception {
    // TODO Auto-generated method stub

}

@Override
public void update(Map map) throws Exception {
    // TODO Auto-generated method stub

}

}

2个回答

xinanwumeng
xinanwumeng   2016.03.10 17:55

StudentDaoImpl 里面没有sqlMapClient 的定义

yt1037921169
yt1037921169 这不是已经注入进去了吗? 继承 的是SqlMapClientDaoSupport 这个类 错误是 Bean property 'driverClassName' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
2 年多之前 回复
yt1037921169
yt1037921169   2016.03.10 18:13

你好!


这不是已经注入进去了吗?
继承 的是SqlMapClientDaoSupport 这个类

    Bean property 'driverClassName' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
spring+ibatis框架下事务代码的编写示例
    最近在做项目的账号管理这一块儿的功能。每一项账号操作相关的功能,都要涉及到多张表的读写。这个时候自然联想到用数据库的事务进行操作。否则,一处发生异常,将导致脏数据的产生。    ibatis+spring框架下事务的代码写法有两种方式:注解方式和声明事务起始点。    需要的spring的配置文件如下:&amp;lt;bean id=&quot;transactionManager&quot; class=&quot;org...
SpringMVC+ibatis数据库事务控制
由于在系统中使用了关联表,逻辑上是关联的,实际数据库并没有做外键。就需要写大量的数据库事务操作。之前一直没有比较好的方式,直接在dao层侵入的方式进行,虽然该方式可以实现事务的管理,但是总觉得有些问题。实现方式如下: public int insert(ChuxinRecord t) { SqlMapClient sqlMapClient = getWriteTemplate(
spring整合ibatis事务管理(各种AOP,比较乱)
Spring通过DAO模式,提供了对iBATIS的良好支持。SqlMapClient对象是iBATIS中的主要对象,我们可以通过配置让spring来管理SqlMapClient对象的创建。   与hibernate类似,Spring 提供了SqlMapClientDaoSupport对象,我们的DAO可以继承这个类,通过它所提供的SqlMapClientTemplate对象来操纵数据库
Spring 下事务管理 - 使用 AOP XML 配置管理(iBatis 为例)
Spring 下事务管理 - 使用 AOP XML 配置管理(iBatis 为例)         Spring下由三种途径对事物进行管理:编程式事务管理、声明式事务管理和AOP事务管理。其中AOP事务管理又分AOP注解事务管理和AOP XML配置两种,这里记录下述其 中的AOP XML配置管理,这也是spring最推荐的方式。         参照中的银行转账的例子。         1
Spring实现iBATIS事务回滚~
Spring 实现iBATIS事务回滚是怎么实现的呢?让我们开始这篇文章的学习,这篇文章将会想你介绍Spring 实现iBATIS事务回滚的相关消息 AD: Spring 实现ibatis事务回滚是怎么回事呢? 这两天做一个网站需要在数据报错时自动对数据进行回滚,在此期间遇到一些问题,现做下笔记 这里使用spring-Aop代理机制来实现事务的回滚:
Spring混合框架(Hibernate+JDBC/iBatis)的事务管理
Spring事务管理器的应对     Spring抽象的DAO体系兼容多种数据访问技术,它们各有特色,各有千秋。像Hibernate是非常优秀的ORM实现方案,但对底层SQL的控制不太方便;而iBatis则通过模板化技术让你方便地控制SQL,但没有Hibernate那样高的开发效率;自由度最高的当然是直接使用Spring JDBC了,但它也是底层的,灵活的代价是代码的繁复。很难说哪种数据访问技术
SpringMVC+Ibatis 临时表
场景如下: 1.有一临时表(事务级别) 2.有一存储过程 3.存储过程中队临时表的数据进行维护,由于临时表是事务级别的,所以如果存储过程和select临时表的操作是分开的,则需要使用Spring自带的事务进行封装,这里采用注解的方式@Transactional,将两个操作封装起来,这样存储过程对临时表的操作,在select方法中才能查询到数据。 tips:如果是会话级别的临时表,则
Springboot+ibatis 事务控制
guthub:https://github.com/liubin192837/spring/tree/master/springbootIbatisTransaction1.首先声明开启事务@SpringBootApplication @EnableTransactionManagement public class SpringbootibatisApplication { public ...
ibatis中SqlMapClient事务处理
ibatis中SqlMapClient事务 sqlMapClient.startTransaction(); 开始事务sqlMapClient.commitTransaction(); 提交事务sqlMapClient.endTransaction(); 结束事务,操作失败的时候,整个事务就会在endTransaction时回滚。 新版的ibatis中,不再有rollbackTransaction
Spring+iBatis+JOTM实现JTA事务
Spring+iBatis+JOTM实现JTA事务 spring ibatis jotm 分布 事务 多数据源