RE: Problem with stored procedure and resultMap or resultClass?
Maybe because you are putting a '@casefileId' in your parameterName? Try using 'casefileId'. Hope this helps, Niels From: Ravi Sundaar [mailto:[EMAIL PROTECTED] Sent: vrijdag 3 juni 2005 12:44 To: ibatis-user-java@incubator.apache.org Cc: [EMAIL PROTECTED] Subject: Problem with stored procedure and resultMap or resultClass? am running into a problem accessing result sets from stored procedure using ibatis datamapper. My DBMS is sybase and driver is Jtds. Here is the sqlmap: ?xml version=1.0 encoding=UTF-8 standalone=no? !DOCTYPE sqlMap PUBLIC -//iBATIS.com//DTD SQL Map 2.0//EN http://www.ibatis.com/dtd/sql-map-2.dtd; sqlMap namespace=PropAssessmentNameSpace !-- typeAlias alias=assessment type=PropAssessment/ -- resultMap id=propAssessmentResult class=PropAssessment result property=rptdPropStrAddr column=RptdPropStrAddr nullValue=/ /resultMap parameterMap id=PropAssessmentParamMap class=java.util.HashMap parameter property=casefileId jdbcType=VARCHAR javaType=java.lang.String mode=IN/ /parameterMap procedure id=stpRtrvPropAssessmtId parameterMap=PropAssessmentParamMap resultClass=PropAssessment {call stpRtrvPropAssessmt (?)} /procedure /sqlMap __ The code snippet that invokes the procedure is below: HashMap paramMap = new HashMap(); paramMap.put(@casefileId, ravi4); DataSource ds = sqlMap.getDataSource(); sqlMap.setUserConnection(conn); sqlMap.queryForObject(stpRtrvPropAssessmtId, paramMap); When I execute the stored procedure in isql mode, with ravi4 as the input param, it gives me one row as the result set. Here is the stack trace and log from executing the procedure through ibatis: DEBUG 06-02 10:53:34 Unknown macro: Unknown macro: {conn-10} Connection (ConnectionLogProxy.java:42) DEBUG 06-02 10:53:34 Unknown macro: Unknown macro: {pstm-11} PreparedStatement: (PreparedStatementLogProxy.java:48) DEBUG 06-02 10:53:34 Unknown macro: Unknown macro: {pstm-11} Parameters: [ravi4] (PreparedStatementLogProxy.java:49) DEBUG 06-02 10:53:34 Types: [java.lang.String] (PreparedStatementLogProxy.java:50) DEBUG 06-02 10:53:34 Unknown macro: {rset-12} ResultSet (ResultSetLogProxy.java:41) com.ibatis.common.jdbc.exception.NestedSQLException: - The error occurred in config/PropAssessment.xml. - The error occurred while applying a parameter map. - Check the PropAssessmentNameSpace.PropAssessmentParamMap. - Check the results (failed to retrieve results). - Cause: java.lang.NullPointerException Caused by: java.lang.NullPointerException at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:184) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:100) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:97) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:69) at PropAssessment.main(PropAssessment.java:266) Caused by: java.lang.NullPointerException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.ibatis.common.jdbc.logging.ResultSetLogProxy.invoke(ResultSetLogProxy.java:47) at $Proxy2.close(Unknown Source) at com.ibatis.sqlmap.engine.execution.SqlExecutor.closeResultSet(SqlExecutor.java:392) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:298) at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:169) ... 6 more Caused by: java.lang.NullPointerException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.ibatis.common.jdbc.logging.ResultSetLogProxy.invoke(ResultSetLogProxy.java:47) at $Proxy2.close(Unknown Source) at com.ibatis.sqlmap.engine.execution.SqlExecutor.closeResultSet(SqlExecutor.java:392) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:298) at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:169) at
RE: Problem with stored procedure and resultMap or resultClass?
Actually, I did use "casefileId" and not "@casefileId" - using "@casefileId" was one of my desperate attempts after trying so many different things. The result is the same, nevertheless... Thanks for the suggestion anyway. Any other thoughts? Ravi.From: "Niels Beekman" [EMAIL PROTECTED]Reply-To: ibatis-user-java@incubator.apache.orgTo: ibatis-user-java@incubator.apache.orgSubject: RE: Problem with stored procedure and resultMap or resultClass?Date: Fri, 3 Jun 2005 13:06:57 +0200Maybe because you are putting a '@casefileId' in your parameterName? Try using 'casefileId'.Hope this helps,NielsFrom: Ravi Sundaar [mailto:[EMAIL PROTECTED]Sent: vrijdag 3 juni 2005 12:44To: ibatis-user-java@incubator.apache.orgCc: [EMAIL PROTECTED]Subject: Problem with stored procedure and resultMap or resultClass?am running into a problem accessing result sets from stored procedure using ibatis datamapper.My DBMS is sybase and driver is Jtds.Here is the sqlmap:?xml version="1.0" encoding="UTF-8" standalone="no"?!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"sqlMap namespace="PropAssessmentNameSpace"!-- typeAlias alias="assessment" type="PropAssessment"/ --resultMap id="propAssessmentResult" class="PropAssessment"result property="rptdPropStrAddr" column="RptdPropStrAddr" nullValue=""//resultMapparameterMap id="PropAssessmentParamMap" class="java.util.HashMap" parameter property="casefileId" jdbcType="VARCHAR"javaType="java.lang.String" mode="IN"//parameterMapprocedure id="stpRtrvPropAssessmtId" parameterMap="PropAssessmentParamMap" resultClass="PropAssessment"{call stpRtrvPropAssessmt (?)}/procedure/sqlMap__The code snippet that invokes the procedure is below:HashMap paramMap = new HashMap();paramMap.put("@casefileId", "ravi4");DataSource ds = sqlMap.getDataSource();sqlMap.setUserConnection(conn);sqlMap.queryForObject("stpRtrvPropAssessmtId", paramMap);When I execute the stored procedure in isql mode, with "ravi4" as the input param, it gives me one row as the result set.Here is the stack trace and log from executing the procedure through ibatis:DEBUG 06-02 10:53:34Unknown macro:Unknown macro: {conn-10}Connection (ConnectionLogProxy.java:42)DEBUG 06-02 10:53:34Unknown macro:Unknown macro: {pstm-11}PreparedStatement: (PreparedStatementLogProxy.java:48)DEBUG 06-02 10:53:34Unknown macro:Unknown macro: {pstm-11}Parameters: [ravi4] (PreparedStatementLogProxy.java:49)DEBUG 06-02 10:53:34 Types: [java.lang.String] (PreparedStatementLogProxy.java:50)DEBUG 06-02 10:53:34Unknown macro: {rset-12}ResultSet (ResultSetLogProxy.java:41)com.ibatis.common.jdbc.exception.NestedSQLException:- The error occurred in config/PropAssessment.xml.- The error occurred while applying a parameter map.- Check the PropAssessmentNameSpace.PropAssessmentParamMap.- Check the results (failed to retrieve results).- Cause: java.lang.NullPointerExceptionCaused by: java.lang.NullPointerExceptionat com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:184)at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:100)at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561)at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536)at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:97)at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:69)at PropAssessment.main(PropAssessment.java:266)Caused by: java.lang.NullPointerExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at com.ibatis.common.jdbc.logging.ResultSetLogProxy.invoke(ResultSetLogProxy.java:47)at $Proxy2.close(Unknown Source)at com.ibatis.sqlmap.engine.execution.SqlExecutor.closeResultSet(SqlExecutor.java:392)at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:298)at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34)at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:169)... 6 moreCaused by:java.lang.NullPointerExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at com.ibatis.common.jdbc.logging.ResultSetLogProxy.invoke(ResultSetLogProxy.java:47)at $Proxy2.close(Unknown Source)at
RE: Problem with stored procedure and resultMap or resultClass?
My question is fairly simple: How can I use ibatis to get result sets from a stored procedure that has no "OUT" or "INOUT" parameters? The stored procedures that I need to invoke take one or more "IN" parameters and generate one or more result sets. They don't have any declared "OUT" or "INOUT" parameters. Does someone have an example that could help me (and several others)? Or, can you point me in the right direction? The DBMS I am using is Sybase, if that matters. Thanks a lot! Ravi. ---BeginMessage--- am running into a problem accessing result sets from stored procedure using ibatis datamapper. My DBMS is sybase and driver is Jtds. Here is the sqlmap: ?xml version="1.0" encoding="UTF-8" standalone="no"?!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd" sqlMap namespace="PropAssessmentNameSpace" !-- typeAlias alias="assessment" type="PropAssessment"/ -- resultMap id="propAssessmentResult" class="PropAssessment"result property="rptdPropStrAddr" column="RptdPropStrAddr" nullValue=""/ /resultMap parameterMap id="PropAssessmentParamMap" class="java.util.HashMap" parameter property="casefileId" jdbcType="VARCHAR"javaType="java.lang.String" mode="IN"/ /parameterMap procedure id="stpRtrvPropAssessmtId" parameterMap="PropAssessmentParamMap" resultClass="PropAssessment" {call stpRtrvPropAssessmt (?)} /procedure /sqlMap __ The code snippet that invokes the procedure is below: HashMap paramMap = new HashMap();paramMap.put("@casefileId", "ravi4");DataSource ds = sqlMap.getDataSource();sqlMap.setUserConnection(conn); sqlMap.queryForObject("stpRtrvPropAssessmtId", paramMap); When I execute the stored procedure in isql mode, with "ravi4" as the input param, it gives me one row as the result set. Here is the stack trace and log from executing the procedure through ibatis: DEBUG 06-02 10:53:34 Unknown macro: Unknown macro: {conn-10} Connection (ConnectionLogProxy.java:42) DEBUG 06-02 10:53:34 Unknown macro: Unknown macro: {pstm-11} PreparedStatement: (PreparedStatementLogProxy.java:48) DEBUG 06-02 10:53:34 Unknown macro: Unknown macro: {pstm-11} Parameters: [ravi4] (PreparedStatementLogProxy.java:49) DEBUG 06-02 10:53:34 Types: [java.lang.String] (PreparedStatementLogProxy.java:50) DEBUG 06-02 10:53:34 Unknown macro: {rset-12} ResultSet (ResultSetLogProxy.java:41) com.ibatis.common.jdbc.exception.NestedSQLException: The error occurred in config/PropAssessment.xml. The error occurred while applying a parameter map. Check the PropAssessmentNameSpace.PropAssessmentParamMap. Check the results (failed to retrieve results). Cause: java.lang.NullPointerExceptionCaused by: java.lang.NullPointerExceptionat com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:184)at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:100)at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561)at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536)at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:97)at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:69)at PropAssessment.main(PropAssessment.java:266)Caused by: java.lang.NullPointerExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at com.ibatis.common.jdbc.logging.ResultSetLogProxy.invoke(ResultSetLogProxy.java:47)at $Proxy2.close(Unknown Source)at com.ibatis.sqlmap.engine.execution.SqlExecutor.closeResultSet(SqlExecutor.java:392)at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:298)at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34)at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:169) 6 more Caused by: java.lang.NullPointerExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at com.ibatis.common.jdbc.logging.ResultSetLogProxy.invoke(ResultSetLogProxy.java:47)at $Proxy2.close(Unknown Source)at com.ibatis.sqlmap.engine.execution.SqlExecutor.closeResultSet(SqlExecutor.java:392)at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:298)at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34)at