public class TradeInfoDAO extends HibernateDaoSupport implements ITradeInfoDAO{ public boolean doUpdate(TradeInfo vo) throws Exception {
Session session = getSession();
String hql = "UPDATE UserInfo SET STATUS=? WHERE User_NUMBER=?" ;
Query query = session.createQuery(hql) ;
query.setString(0, vo.getUsertNumber());
query.setLong(1, vo.getStatus()) ;
query.executeUpdate();
return true ;
}

}
有高手解决一下这个问题吗?
上面的写的对吗?
这个是Hibernate+Spring查询语句。更新语句的表如下
userID      自增长ID    用于记录用户数
User_number  用户编号唯一的 
Status      用户的登陆状态值现在要根据用户的编号设置他的登陆状态值,这个更新语句怎么写,要用Hibernate+Spring框架结合。
再编写一个测试类,怎么写?

解决方案 »

  1.   

    query.setString(0, vo.getUsertNumber());
    query.setLong(1, vo.getStatus()) ;
    写反了 童鞋
    query.setString(1, vo.getUsertNumber());
    query.setLong(0, vo.getStatus()) ;
      

  2.   

    public class TestUpdate {
        public static void main(String args[])throws Exception{
        
         UserInfo tra = new UserInfo() ;
         tra.setTradeNumber("33");
         tra.setStatus((byte)1) ;
         ApplicationContext ctx = new ClassPathXmlApplicationContext(
    "applicationContext.xml");
            UserInfoService service = (UserInfoService) ctx.getBean("userInfoService");
         System.out.println(service.update(tra));
        }
    }这是我写的测试类,但报错
      

  3.   

    Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.reflect.MalformedParameterizedTypeException
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at org.bxx.Test.TestUpdate.main(TestUpdate.java:14)
    Caused by: java.lang.reflect.MalformedParameterizedTypeException
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.validateConstructorArguments(ParameterizedTypeImpl.java:42)
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.<init>(ParameterizedTypeImpl.java:35)
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.make(ParameterizedTypeImpl.java:77)
    at sun.reflect.generics.factory.CoreReflectionFactory.makeParameterizedType(CoreReflectionFactory.java:86)
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:122)
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31)
    at sun.reflect.generics.repository.ClassRepository.getSuperInterfaces(ClassRepository.java:82)
    at java.lang.Class.getGenericInterfaces(Class.java:794)
    at org.springframework.core.GenericTypeResolver.getTypeVariableMap(GenericTypeResolver.java:161)
    at org.springframework.core.GenericTypeResolver.resolveReturnType(GenericTypeResolver.java:99)
    at org.springframework.beans.GenericTypeAwarePropertyDescriptor.getPropertyType(GenericTypeAwarePropertyDescriptor.java:88)
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138)
    at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:386)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1289)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1250)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
    ... 14 more
      

  4.   

    Error creating bean with name 'sessionFactory'问题出在你的sessionFactory  你的sessionFactory没有创建成功啊。
      

  5.   

    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">
    org.hibernate.dialect.Oracle9Dialect
    </prop>
    <prop key="hibernate.show_sql">
    true
    </prop>
    <prop key="hibernate.format_sql">
    true
    </prop>
    </props>
    </property>
    <property name="mappingResources">
    这里有sessionFactory呀!!!