Return-Path: Delivered-To: apmail-incubator-ibatis-user-java-archive@www.apache.org Received: (qmail 23429 invoked from network); 19 Apr 2005 21:53:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 19 Apr 2005 21:53:25 -0000 Received: (qmail 52965 invoked by uid 500); 19 Apr 2005 21:53:15 -0000 Delivered-To: apmail-incubator-ibatis-user-java-archive@incubator.apache.org Received: (qmail 52923 invoked by uid 500); 19 Apr 2005 21:53:14 -0000 Mailing-List: contact ibatis-user-java-help@incubator.apache.org; run by ezmlm Precedence: bulk Reply-To: ibatis-user-java@incubator.apache.org List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list ibatis-user-java@incubator.apache.org Delivered-To: moderator for ibatis-user-java@incubator.apache.org Received: (qmail 6069 invoked by uid 99); 18 Apr 2005 07:27:51 -0000 X-ASF-Spam-Status: No, hits=0.1 required=10.0 tests=FORGED_RCVD_HELO,HTML_40_50,HTML_MESSAGE X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Message-ID: <000601c543e8$1ca20120$756f6fc0@siti> Reply-To: "Siti Norhairatul Aishah" From: "Siti Norhairatul Aishah" To: Subject: Problem with SQL Statement (preparation failed) during insert into MySQL Date: Mon, 18 Apr 2005 15:27:42 +0800 Organization: IB Technologies MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0003_01C5442B.29E4A520" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N This is a multi-part message in MIME format. ------=_NextPart_000_0003_01C5442B.29E4A520 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi all,=20 I am having a problem when trying to insert into a MySQL database.I = am using Ibatis 2.0 on Spring framework. Here is the error I'm getting. com.ibatis.common.jdbc.exception.NestedSQLException:=20 --- The error occurred in /com/ibt/dview/da/model/Role.xml.=20 --- The error occurred while executing update.=20 --- Check the insert into da_role(ROLE_NAME,ROLE_DESC) values (?, ?) .=20 --- Check the SQL Statement (preparation failed).=20 --- Cause: java.lang.NullPointerException Caused by: java.lang.NullPointerException at = com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate= (GeneralStatement.java:89) at = com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecuto= rDelegate.java:442) at = com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.= java:85) at = org.springframework.orm.ibatis.SqlMapClientTemplate$9.doInSqlMapClient(Sq= lMapClientTemplate.java:295) at = org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientT= emplate.java:165) at = org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTe= mplate.java:293) at com.ibt.dview.da.dao.RoleDAOImpl.addRole(RoleDAOImpl.java:51) at = com.ibt.dview.adaptor.db.DADBAdaptorImpl.addRole(DADBAdaptorImpl.java:94)= at = com.ibt.dview.da.service.DAServiceImpl.addRole(DAServiceImpl.java:188) at com.ibt.dview.da.bean.DARoleBean.addRole(DARoleBean.java:80) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at = sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) at = sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126) at = com.sun.faces.application.ActionListenerImpl.processAction(ActionListener= Impl.java:72) at javax.faces.component.UICommand.broadcast(UICommand.java:312) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267) at = javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381) at = com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationP= hase.java:75) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) at = org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat= ionFilterChain.java:284) at = org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte= rChain.java:204) at = org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve= .java:257) at = org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon= text.java:151) at = org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:56= 4) at = org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCont= extValve.java:245) at = org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve= .java:199) at = org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon= text.java:151) at = org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:56= 4) at = org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:= 195) at = org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon= text.java:151) at = org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:= 164) at = org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon= text.java:149) at = org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:56= 4) at = org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.j= ava:156) at = org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon= text.java:151) at = org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:56= 4) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972) at = org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206) at = org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828= ) at = org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processCo= nnection(Http11Protocol.java:700) at = org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584= ) at = org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.= java:683) at java.lang.Thread.run(Thread.java:534) Caused by: java.lang.NullPointerException at com.mysql.jdbc.PreparedStatement.asSql(PreparedStatement.java:1845) at = com.mysql.jdbc.PreparedStatement.toString(PreparedStatement.java:1770) at java.lang.String.valueOf(String.java:2131) at java.lang.StringBuffer.append(StringBuffer.java:370) at com.mysql.jdbc.trace.Tracer.printParameters(Tracer.aj:240) at com.mysql.jdbc.trace.Tracer.printEntering(Tracer.aj:167) at com.mysql.jdbc.trace.Tracer.entry(Tracer.aj:126) at = com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c= 62b8(Tracer.aj:45) at com.mysql.jdbc.Connection.registerStatement(Connection.java) at com.mysql.jdbc.Statement.(Statement.java:171) at com.mysql.jdbc.PreparedStatement.(PreparedStatement.java:139) at = com.mysql.jdbc.ServerPreparedStatement.toString(ServerPreparedStatement.j= ava:851) at java.lang.String.valueOf(String.java:2131) at java.lang.StringBuffer.append(StringBuffer.java:370) at com.mysql.jdbc.trace.Tracer.printParameters(Tracer.aj:240) at com.mysql.jdbc.trace.Tracer.printEntering(Tracer.aj:167) at com.mysql.jdbc.trace.Tracer.entry(Tracer.aj:126) at = com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c= 62b8(Tracer.aj:45) at com.mysql.jdbc.Connection.registerStatement(Connection.java) at com.mysql.jdbc.Statement.(Statement.java:171) at com.mysql.jdbc.PreparedStatement.(PreparedStatement.java:201) at = com.mysql.jdbc.ServerPreparedStatement.(ServerPreparedStatement.jav= a:133) at com.mysql.jdbc.Connection.prepareStatement(Connection.java:1370) at com.mysql.jdbc.Connection.prepareStatement(Connection.java:1335) at = org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingC= onnection.java:216) at = org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prep= areStatement(PoolingDataSource.java:323) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at = sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) at = sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at = com.ibatis.common.jdbc.logging.ConnectionLogProxy.invoke(ConnectionLogPro= xy.java:50) at $Proxy0.prepareStatement(Unknown Source) at = com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.= java:77) at = com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpd= ate(GeneralStatement.java:195) at = com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate= (GeneralStatement.java:73) ... 46 more My statement is as simple as follows =20 insert into da_role(ROLE_NAME,ROLE_DESC) values (#roleName#, #roleDesc#) =20 SELECT last_insert_id() AS roleId=20 I've tried to look into this mailing list, and my code seems to look = fine.What am I doing wrong here.. Initially when I tried running the = same statement on oracle 8.. it was ok. Of course I had the selectKey = argument to suit oracle then. I changed my MySQL table from InnoDB to = MyISAM but still it does not work. I have also disabled the Transaction = Manager in Spring to let this work, but still it does not have any = impact. It seems like the sql statement supplied is incorrect but I = doubt so. Please if anyone can help me.. really appreciate it.=20 Thanks. ------=_NextPart_000_0003_01C5442B.29E4A520 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi all,
     I am having a = problem when=20 trying to insert into a MySQL database.I am using Ibatis 2.0 on = Spring=20 framework. Here is the error I'm getting.
 
com.ibatis.common.jdbc.exception.NestedSQLException:=20
--- The error occurred in=20 /com/ibt/dview/da/model/Role.xml.
--- The error occurred while = executing=20 update.
--- Check the insert into=20 da_role(ROLE_NAME,ROLE_DESC) values (?, ?) .
--- Check the SQL Statement = (preparation=20 failed).
--- Cause:=20 java.lang.NullPointerException
Caused by:=20 java.lang.NullPointerException
at=20 com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate= (GeneralStatement.java:89)
at=20 com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecuto= rDelegate.java:442)
at=20 com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.= java:85)
at=20 org.springframework.orm.ibatis.SqlMapClientTemplate$9.doInSqlMapClient(Sq= lMapClientTemplate.java:295)
at=20 org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientT= emplate.java:165)
at=20 org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTe= mplate.java:293)
at=20 com.ibt.dview.da.dao.RoleDAOImpl.addRole(RoleDAOImpl.java:51)=
at=20 com.ibt.dview.adaptor.db.DADBAdaptorImpl.addRole(DADBAdaptorImpl.java:94)=
at=20 com.ibt.dview.da.service.DAServiceImpl.addRole(DAServiceImpl.java:188)
at=20 com.ibt.dview.da.bean.DARoleBean.addRole(DARoleBean.java:80)<= /DIV>
at=20 sun.reflect.NativeMethodAccessorImpl.invoke0(Native = Method)
at=20 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39)
at=20 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25)
at=20 java.lang.reflect.Method.invoke(Method.java:324)
at=20 com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
at=20 com.sun.faces.application.ActionListenerImpl.processAction(ActionListener= Impl.java:72)
at=20 javax.faces.component.UICommand.broadcast(UICommand.java:312)=
at=20 javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
at=20 javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)<= /FONT>
at=20 com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationP= hase.java:75)
at=20 com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
at=20 com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
at=20 javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
at=20 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat= ionFilterChain.java:284)
at=20 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte= rChain.java:204)
at=20 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve= .java:257)
at=20 org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon= text.java:151)
at=20 org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:56= 4)
at=20 org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCont= extValve.java:245)
at=20 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve= .java:199)
at=20 org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon= text.java:151)
at=20 org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:56= 4)
at=20 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:= 195)
at=20 org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon= text.java:151)
at=20 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:= 164)
at=20 org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon= text.java:149)
at=20 org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:56= 4)
at=20 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.j= ava:156)
at=20 org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon= text.java:151)
at=20 org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:56= 4)
at=20 org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at=20 org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
at=20 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828= )
at=20 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processCo= nnection(Http11Protocol.java:700)
at=20 org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584= )
at=20 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.= java:683)
at=20 java.lang.Thread.run(Thread.java:534)
Caused by:=20 java.lang.NullPointerException
at=20 com.mysql.jdbc.PreparedStatement.asSql(PreparedStatement.java:1845)
at=20 com.mysql.jdbc.PreparedStatement.toString(PreparedStatement.java:1770)
at=20 java.lang.String.valueOf(String.java:2131)
at=20 java.lang.StringBuffer.append(StringBuffer.java:370)
at=20 com.mysql.jdbc.trace.Tracer.printParameters(Tracer.aj:240)
at=20 com.mysql.jdbc.trace.Tracer.printEntering(Tracer.aj:167)
at=20 com.mysql.jdbc.trace.Tracer.entry(Tracer.aj:126)
at=20 com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c= 62b8(Tracer.aj:45)
at=20 com.mysql.jdbc.Connection.registerStatement(Connection.java)<= /DIV>
at=20 com.mysql.jdbc.Statement.<init>(Statement.java:171)
at=20 com.mysql.jdbc.PreparedStatement.<init>(PreparedStatement.java:139)=
at=20 com.mysql.jdbc.ServerPreparedStatement.toString(ServerPreparedStatement.j= ava:851)
at=20 java.lang.String.valueOf(String.java:2131)
at=20 java.lang.StringBuffer.append(StringBuffer.java:370)
at=20 com.mysql.jdbc.trace.Tracer.printParameters(Tracer.aj:240)
at=20 com.mysql.jdbc.trace.Tracer.printEntering(Tracer.aj:167)
at=20 com.mysql.jdbc.trace.Tracer.entry(Tracer.aj:126)
at=20 com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c= 62b8(Tracer.aj:45)
at=20 com.mysql.jdbc.Connection.registerStatement(Connection.java)<= /DIV>
at=20 com.mysql.jdbc.Statement.<init>(Statement.java:171)
at=20 com.mysql.jdbc.PreparedStatement.<init>(PreparedStatement.java:201)=
at=20 com.mysql.jdbc.ServerPreparedStatement.<init>(ServerPreparedStateme= nt.java:133)
at=20 com.mysql.jdbc.Connection.prepareStatement(Connection.java:1370)
at=20 com.mysql.jdbc.Connection.prepareStatement(Connection.java:1335)
at=20 org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingC= onnection.java:216)
at=20 org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prep= areStatement(PoolingDataSource.java:323)
at=20 sun.reflect.NativeMethodAccessorImpl.invoke0(Native = Method)
at=20 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39)
at=20 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25)
at=20 java.lang.reflect.Method.invoke(Method.java:324)
at=20 com.ibatis.common.jdbc.logging.ConnectionLogProxy.invoke(ConnectionLogPro= xy.java:50)
at = $Proxy0.prepareStatement(Unknown=20 Source)
at=20 com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.= java:77)
at=20 com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpd= ate(GeneralStatement.java:195)
at=20 com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate= (GeneralStatement.java:73)
... 46 = more
 
 
My statement is as simple as follows
 
<resultMap id=3D"role-result"=20 class=3D"com.ibt.dview.da.model.Role">
<result property=3D"roleId" = column=3D"ROLE_ID"=20 />
<result property=3D"roleName" = column=3D"ROLE_NAME"=20 />
<result property=3D"roleDesc" = column=3D"ROLE_DESC"=20 />
</resultMap>
 
<insert id=3D"addRole"=20 parameterClass=3D"com.ibt.dview.da.model.Role">
        = insert into=20 da_role(ROLE_NAME,ROLE_DESC)
       =20     values (#roleName#, #roleDesc#)
        = <selectKey=20 resultClass=3D"int" keyProperty=3D"roleId" >
       =20     SELECT last_insert_id() AS roleId
       =20 </selectKey>
</insert>
 
I've tried to look into this mailing = list, and my=20 code seems to look fine.What am I doing wrong here.. Initially when = I tried=20 running the same statement on oracle 8.. it was ok. Of course I had the=20 selectKey argument to suit oracle then. I changed my MySQL table from = InnoDB to=20 MyISAM but still it does not work. I have also disabled the Transaction = Manager=20 in Spring to let this work, but still it does not have any impact. It = seems like=20 the sql statement supplied is incorrect but I doubt so.
 
Please if anyone can help me.. really appreciate it.
 
Thanks.
------=_NextPart_000_0003_01C5442B.29E4A520--