Return-Path: Delivered-To: apmail-ibatis-user-java-archive@www.apache.org Received: (qmail 5667 invoked from network); 22 Jan 2008 23:06:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Jan 2008 23:06:44 -0000 Received: (qmail 90519 invoked by uid 500); 22 Jan 2008 23:06:28 -0000 Delivered-To: apmail-ibatis-user-java-archive@ibatis.apache.org Received: (qmail 90485 invoked by uid 500); 22 Jan 2008 23:06:28 -0000 Mailing-List: contact user-java-help@ibatis.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user-java@ibatis.apache.org Delivered-To: mailing list user-java@ibatis.apache.org Received: (qmail 90474 invoked by uid 99); 22 Jan 2008 23:06:28 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 Jan 2008 15:06:28 -0800 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of swboyd@gmail.com designates 72.14.220.152 as permitted sender) Received: from [72.14.220.152] (HELO fg-out-1718.google.com) (72.14.220.152) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 Jan 2008 23:06:02 +0000 Received: by fg-out-1718.google.com with SMTP id d23so2064734fga.32 for ; Tue, 22 Jan 2008 15:06:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=N6y+OsHKD6pLa2Kvo4lcGZLORe7bSJTVtXIz/UK2bdQ=; b=hEK+EUtnc4JWP4lR5udPcsehV3As9ar5Hi3SFfg0zlVFmA5JiHbW48HJJJlRLsw+Us2XB6ZwhKXqppJZ4q7LILU1YiWllSa5pczX9W0EevfyhQwY3Hg0JrebIlbND9+4EqoQZp+p8myQ0lr7koTFw6YqSt9VcPPBz8PqEvKJLW0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=n22cSuqrfUqlyFzyZPC0cXNqx6Px3q9CyNoCRRA8I89NXoqs67In0ZSoyS036JcwgcS6jcRmfR/fh2a2AKJJLpuDBnAlBBMjyiMUiT9PpuUO5BGLHXshwagECfWVhUMAFuCzPN6wS9OK7bWaSVd5D+2EUpTC3VEnaP1ONsoXUU4= Received: by 10.86.77.5 with SMTP id z5mr8240523fga.5.1201043167215; Tue, 22 Jan 2008 15:06:07 -0800 (PST) Received: by 10.86.63.20 with HTTP; Tue, 22 Jan 2008 15:06:07 -0800 (PST) Message-ID: <80bfbb6d0801221506k1dc7ca55q6a4e821c2ecb0e6d@mail.gmail.com> Date: Tue, 22 Jan 2008 18:06:07 -0500 From: "Stephen Boyd" To: user-java@ibatis.apache.org Subject: Re: Substitution Error on Insert? In-Reply-To: <9C962DE06BF53A46B63E6136BF9DC5105FA8A4BDA4@NEXUSMX100A.nexus.emc.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_16626_32839817.1201043167200" References: <9C962DE06BF53A46B63E6136BF9DC5105FA8A4BDA4@NEXUSMX100A.nexus.emc.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_16626_32839817.1201043167200 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Can you turn on logging for java.sql? Then you can see more of what ibatis is doing with the prepared statement and its parameters. On Jan 22, 2008 10:45 AM, Krenek, Robert wrote: > Hi All, > > > > I'm running into an issue that I cannot resolve. If you can provide any > assistance, your help would be much appreciated. > > > > The environment consists of Ibatis, along with Apache and Tomcat on Linux > connecting to a DB2 database on an as400. > > > > Insert statements that once worked, are suddenly failing with the > following error: > > > > java.sql.SQLException: The number of parameter values set or registered does not match the number of parameters. > > com.ibm.as400.access.JDError.throwSQLException(JDError.java:360) > > com.ibm.as400.access.AS400JDBCPreparedStatement.commonExecuteBefore(AS400JDBCPreparedStatement.java:464) > > com.ibm.as400.access.AS400JDBCStatement.commonExecute(AS400JDBCStatement.java:631) > > com.ibm.as400.access.AS400JDBCPreparedStatement.execute(AS400JDBCPreparedStatement.java:726) > > com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:81) > > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:200) > > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78) > > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:505) > > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90) > > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.update(SqlMapClientImpl.java:67) > > net.diginc.digicon.dao.HomeOfficeAdminDAO.updateContractStatus(HomeOfficeAdminDAO.java:172) > > net.diginc.digicon.services.HomeOfficeAdminService.abandonContract(HomeOfficeAdminService.java:359) > > org.apache.jsp.ProcessAbandonContract_jsp._jspService(ProcessAbandonContract_jsp.java:65) > > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) > > javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) > > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) > > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) > > javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > > > > > Here is the DAO insert code: > > > > *public* *void* updateContractStatus( String contractId, ContractStatus > contractStatus ) *throws* Exception > > { > > SqlMapClient sqlMap = FdlicSqlConfiguration.*getSqlMapInstance > *(); > > HashMap parameters = *new* HashMap Object>(); > > parameters.put("contractStatusCode", contractStatus.getCode() > ); > > parameters.put("contractId", contractId ); > > sqlMap.update("updateContractStatus", parameters ); > > } > > > > > > Here is the map from the sqlmap: > > > > > > > > > > > > > > > > update digicon.contract set contractStatusCode = ? where contractId = ? > > > > > > > > It appears to me as though the "?" are not being substituted. Any thoughts > would be greatly appreciated. > > > > Best Regards, > > Robert Krenek > > > > > > > > > ------=_Part_16626_32839817.1201043167200 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Can you turn on logging for java.sql?  Then you can see more of what ibatis is doing with the prepared statement and its parameters.

On Jan 22, 2008 10:45 AM, Krenek, Robert < Robert.Krenek@emc.com> wrote:

Hi All,

 

I'm running into an issue that I cannot resolve.  If you can provide any assistance, your help would be much appreciated.

 

The environment consists of Ibatis, along with Apache and Tomcat on Linux connecting to a DB2 database on an as400.

 

Insert statements that once worked, are suddenly failing with the following error:

 

java.sql.SQLException: The number of parameter values set or registered does not match the number of parameters.
        com.ibm.as400.access.JDError.throwSQLException(JDError.java:360)

        com.ibm.as400.access.AS400JDBCPreparedStatement.commonExecuteBefore(AS400JDBCPreparedStatement.java:464)

        com.ibm.as400.access.AS400JDBCStatement.commonExecute(AS400JDBCStatement.java:631)

        com.ibm.as400.access.AS400JDBCPreparedStatement.execute(AS400JDBCPreparedStatement.java:726)
        
com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:81)
        com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate
(GeneralStatement.java:200)
        com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate
(GeneralStatement.java:78)
        com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java
:505)
        com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90)
        com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.update(SqlMapClientImpl.java:67)

        net.diginc.digicon.dao.HomeOfficeAdminDAO.updateContractStatus(HomeOfficeAdminDAO.java:172)

        net.diginc.digicon.services.HomeOfficeAdminService.abandonContract(HomeOfficeAdminService.java:359)

        org.apache.jsp.ProcessAbandonContract_jsp._jspService(ProcessAbandonContract_jsp.java:65)
        
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
        javax.servlet.http.HttpServlet.service
(HttpServlet.java:803)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java
:331)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 

 

Here is the DAO insert code:

 

public void updateContractStatus( String contractId, ContractStatus contractStatus ) throws Exception

      {

            SqlMapClient sqlMap = FdlicSqlConfiguration.getSqlMapInstance();

            HashMap<String,Object> parameters = new HashMap<String, Object>();

            parameters.put("contractStatusCode" , contractStatus.getCode() );

            parameters.put("contractId" , contractId );

            sqlMap.update("updateContractStatus" , parameters );

      }

 

 

Here is the map from the sqlmap:

 

<parameterMap id ="update" class ="java.util.Map" >

   < parameter property= "contractStatusCode"  jdbcType ="INTEGER" />

   < parameter property= "contractId"  jdbcType ="VARCHAR" />

</ parameterMap>

 

<update id ="updateContractStatus" parameterMap ="update" >

   update digicon.contract set contractStatusCode = ? where contractId = ?

</ update>

 

 

It appears to me as though the "?" are not being substituted. Any thoughts would be greatly appreciated.

 

Best Regards,

Robert Krenek

 

 

 

 


------=_Part_16626_32839817.1201043167200--