- This topic has 3 replies, 2 voices, and was last updated 18 years, 11 months ago by Riyad Kalla.
-
AuthorPosts
-
signsunMembereclipse3.1.1+myeclipse4.0.3+oracle9i
use a struts action to get an object from db
and request.getSession().setAbtriude(“a”,a);update the record in a jsp page
in another struts action ,i update the object to the db
code is:
aFrom af= (aForm)form;
aObject aobj=new aObject();
aobj.setAbc(aobj.getAbc());
….
Session session=null;
transaction tx=null;
try
{session=HibernateSessionFactory.currentSession();
tx= session.beginTransaction();
session.update(data);
tx.commit();
}
catch(HibernateException e)
{
…
}….errors:
org.hibernate.exception.GenericJdbcException:Could not execute jdbc batch updatewhat can i do?
thanks.
Riyad KallaMemberWhat does your hibernate.cfg.xml file look like, also what does your hbm.xml file for your “data” class look like?
signsunMemberHere is my code:
exceptionjavax.servlet.ServletException: Could not execute JDBC batch update
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:27)root cause
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:181)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:137)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
com.sunyang.Hibernate.TaskdocService.updateTaskdoc(TaskdocService.java:101)
com.sunyang.struts.action.EditTaskdocAction.execute(EditTaskdocAction.java:61)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:27)/hibernate.cfg.xml:
<?xml version=’1.0′ encoding=’UTF-8′?>
<!DOCTYPE hibernate-configuration PUBLIC
“-//Hibernate/Hibernate Configuration DTD 3.0//EN”
“http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”><!– Generated by MyEclipse Hibernate Tools. –>
<hibernate-configuration><session-factory>
<property name=”myeclipse.connection.profile”>myora</property>
<property name=”connection.url”>jdbc:oracle:thin:@localhost:1521:orax</property>
<property name=”connection.username”>scott</property>
<property name=”connection.password”>tiger</property>
<property name=”connection.driver_class”>oracle.jdbc.driver.OracleDriver</property>
<property name=”dialect”>org.hibernate.dialect.Oracle9Dialect</property><mapping resource=”com/sunyang/Hibernate/Taskdoc.hbm.xml” />
<mapping resource=”com/sunyang/Hibernate/Sysuser.hbm.xml” /></session-factory>
</hibernate-configuration>
Taskdoc.hbm.xml:
<?xml version=”1.0″ encoding=’UTF-8′?>
<!DOCTYPE hibernate-mapping PUBLIC
“-//Hibernate/Hibernate Mapping DTD 3.0//EN”
“http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd” ><!– DO NOT EDIT: This is a generated file that is synchronized –>
<!– by MyEclipse Hibernate tool integration. –>
<!– Created Sat Nov 12 15:02:12 CST 2005 –>
<hibernate-mapping package=”com.sunyang.Hibernate”><class name=”Taskdoc” table=”TASKDOC”>
<id name=”sno” column=”SNO” type=”java.lang.Long”>
<generator class=”sequence”>
<param name=”sequence”>sequ_taskdoc_sno</param>
</generator>
</id><property name=”deptname” column=”DEPTNAME” type=”java.lang.String” />
<property name=”serialno” column=”SERIALNO” type=”java.lang.String” />
<property name=”techtype” column=”TECHTYPE” type=”java.lang.String” />
<property name=”techsrc” column=”TECHSRC” type=”java.lang.String” />
<property name=”techname” column=”TECHNAME” type=”java.lang.String” />
<property name=”builddate” column=”BUILDDATE” type=”java.lang.String” />
<property name=”currstat” column=”CURRSTAT” type=”java.lang.String” />
<property name=”technote” column=”TECHNOTE” type=”java.lang.String” />
<property name=”vnote” column=”VNOTE” type=”java.lang.String” />
<property name=”knote” column=”KNOTE” type=”java.lang.String” />
</class></hibernate-mapping>
action:
package com.sunyang.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import com.sunyang.Hibernate.Taskdoc;
import com.sunyang.Hibernate.TaskdocService;
import com.sunyang.struts.form.EditTaskdocForm;/**
* MyEclipse Struts
* Creation date: 11-15-2005
*
* XDoclet definition:
* @struts.action path=”/editTaskdoc” name=”editTaskdocForm” input=”/jsp/editTaskdocDetail.jsp” scope=”request” validate=”true”
*/
public class EditTaskdocAction extends Action {// ——————————————————— Instance Variables
// ——————————————————— Methods
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
EditTaskdocForm editTaskdocForm = (EditTaskdocForm) form;
// TODO Auto-generated method stub
Taskdoc data= new Taskdoc();data.setDeptname(editTaskdocForm.getDeptname());
data.setBuilddate(editTaskdocForm.getBuilddate());
data.setCurrstat(editTaskdocForm.getCurrstat());
data.setKnote(editTaskdocForm.getKnote());
data.setSerialno(editTaskdocForm.getSerialno());
data.setSno(editTaskdocForm.getSno());
data.setTechname(editTaskdocForm.getTechname());
data.setTechnote(editTaskdocForm.getTechnote());
data.setTechsrc(editTaskdocForm.getTechsrc());
data.setTechtype(editTaskdocForm.getTechtype());
data.setVnote(editTaskdocForm.getVnote());TaskdocService.getInstance().updateTaskdoc(data);
System.err.println(data.getDeptname());
// TODO Auto-generated method stub
return mapping.findForward(“success”);
}}
public class TaskdocService {
…….public void updateTaskdoc(Taskdoc data)
{
/*
* Use the ConnectionFactory to retrieve an open
* Hibernate Session.
*
*/
Session session = null;
Transaction tx=null;try
{
session = HibernateSessionFactory.currentSession();
tx=session.beginTransaction();//System.err.println(data.getSno());
session.update(data,data.getSno());
tx.commit();
}
catch (HibernateException e)
{
if (tx!=null)
{
tx.rollback();
throw e;
}
}
/*
* Regardless of whether the above processing resulted in an Exception
* or proceeded normally, we want to close the Hibernate session. When
* closing the session, we must allow for the possibility of a Hibernate
* Exception.
*
*/
finally
{
HibernateSessionFactory.closeSession();
}}
}
Riyad KallaMembersession.update(data,data.getSno());
In your updateTaskDoc method above, you have the quoted line of code, did you mistype this or do you really have a comma in there?
Also, when the update fails, copy and paste the ENTIRE stacks trace for me, I have a feeling if you read far enough down the exception tree you may see a connection problem.
-
AuthorPosts