executeUpdate()后TOMCAT死机(没反映),请问是怎么回事。


系统环境:hibernate+spring+struts,tomcat
程序代码如下:


public void updatePrvDAO(String Fucode) {
        //新增以后,需自动更新其上级功能节点编码的fuend值=0
if (Fucode.length()>2)
{
Session session=(Session) getHibernateTemplate().getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Connection con=session.connection();
try {
String sql="update bdfunc set fuend=0 where fucode='"
+Fucode.substring(0, (Fucode.length()-2))+"'";
PreparedStatement stmt=con.prepareStatement(sql);
stmt.executeUpdate();//执行到这点时死机
tx.commit();
}catch (SQLException e) {
            //回滚
           tx.rollback();
        }
finally { 
  session.close();
}
}

}

10 个解决方案

#1


1、你很厉害,都SSH了,代码竟然还是这样的。这是题外话
2、把你的sql打出来看看有没问题,

#2


tomcat死掉,有这么不稳定的吗?考虑下换个好版本
查看下数据库连接上没有,在看看数据库连接池的设置

#3


既然使用hibernate就不要使用PreparedStatement了,而且你的con都不知道哪里来的,试试下面的:

Session session=(Session) getHibernateTemplate().getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
try {
String sql="update bdfunc set fuend=0 where fucode='"
+Fucode.substring(0, (Fucode.length()-2))+"'";
session.createSQLQuery(sql).executeUpdate();
tx.commit();
}catch (SQLException e) {
//回滚
tx.rollback();
}
finally {
session.close();
}
}

#4


不好意思,我是照着别的给我模板在摸索,不知所以然。

sql值为:"update bdfunc set fuend=0 where fucode='88'" 

补充说明:
在执行updatePrvDAO之前,执行的语句为:Hibernate: insert into sbgl.dbo.bdfunc (fucode, funame, fuprog, fuend, fuwin, fuwidth, fuheight, fugif) values (?, ?, ?, ?, ?, ?, ?, ?),然后再执行updatePrvDAO,这时系统就没有反映了。

如果在执行updatePrvDAO之前执行的一条UPDATE语句,则updatePrvDAO能正常执行。

#5


BearRui,换成session.createSQLQuery(sql).executeUpdate();
后系统出错,出错信息如下:
java.lang.UnsupportedOperationException: Update queries only supported through HQL
at org.hibernate.impl.AbstractQueryImpl.executeUpdate(AbstractQueryImpl.java:607)
at com.sbgl.DAO.BdFuncDAO.updatePrvDAO(BdFuncDAO.java:51)
at com.sbgl.business.impl.BdFuncManagerImpl.updateFunc(BdFuncManagerImpl.java:98)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
at $Proxy3.updateFunc(Unknown Source)
at com.sbgl.struts.action.BdFuncAction.addsave(BdFuncAction.java:208)
at com.sbgl.struts.action.BdFuncAction.execute(BdFuncAction.java:75)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.sbgl.servlet.InitialFilter.doFilter(InitialFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)

#6


我这样用的没问题,你的hibernate什么版本,我的是3.12

#7


是3.24

#8


是3.1

#9


数据库配置为:
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass"
value="net.sourceforge.jtds.jdbc.Driver" />
<property name="jdbcUrl"
value="jdbc:jtds:sqlserver://localhost:1433/sbgl" />
<property name="user" value="sa" />
<property name="password" value="sa" />
<property name="initialPoolSize" value="10" />
<property name="maxPoolSize" value="20" />
<property name="minPoolSize" value="5" />
</bean>

#10


没有人能解决这个问题呀,我也遇到了这样的事呀!怎么搞的呀!嗨

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号