Return-Path: Delivered-To: apmail-incubator-ibatis-user-java-archive@www.apache.org Received: (qmail 25962 invoked from network); 18 May 2005 01:54:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 18 May 2005 01:54:40 -0000 Received: (qmail 98776 invoked by uid 500); 17 May 2005 20:05:03 -0000 Delivered-To: apmail-incubator-ibatis-user-java-archive@incubator.apache.org Received: (qmail 98482 invoked by uid 500); 17 May 2005 20:04:59 -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 Received: (qmail 98428 invoked by uid 99); 17 May 2005 20:04:58 -0000 X-ASF-Spam-Status: No, hits=3.6 required=10.0 tests=DNS_FROM_RFC_ABUSE,DNS_FROM_RFC_POST,MSGID_FROM_MTA_HEADER,RCVD_IN_BL_SPAMCOP_NET,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: domain of grahamcruickshanks@hotmail.com designates 64.4.56.36 as permitted sender) Received: from bay101-f26.bay101.hotmail.com (HELO hotmail.com) (64.4.56.36) by apache.org (qpsmtpd/0.28) with ESMTP; Tue, 17 May 2005 13:04:54 -0700 Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Tue, 17 May 2005 13:04:46 -0700 Message-ID: Received: from 64.4.56.200 by by101fd.bay101.hotmail.msn.com with HTTP; Tue, 17 May 2005 20:04:46 GMT X-Originating-IP: [64.4.56.200] X-Originating-Email: [grahamcruickshanks@hotmail.com] X-Sender: grahamcruickshanks@hotmail.com In-Reply-To: <68ba8fae050516181160beec14@mail.gmail.com> From: "Graham Cruickshanks" To: kenkatsma@gmail.com, ibatis-user-java@incubator.apache.org Cc: clinton.begin@gmail.com Bcc: Subject: Re: iBATIS for Java 2.1.0 Released Date: Tue, 17 May 2005 20:04:46 +0000 Mime-Version: 1.0 Content-Type: text/plain; format=flowed X-OriginalArrivalTime: 17 May 2005 20:04:46.0830 (UTC) FILETIME=[AC9F68E0:01C55B1B] X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N The update for IBATIS to use .execute instead of .executeQuery sadly does not resolve the Oracle Cursor issue (IBATIS-53) Bellow is an example of the issue with SqlExecutor problem in straight JDBC. This shows how the SqlExecutor.java will not work without being adjusted to loop over the out parameters to see if a out parameter is a resultset for cursor compatiablity. IThe resultset needs to be retieved via the getObject(index) method. Oracle Driver problem I know but I predict hell freezing over before Oracle fix their driver, Weblogic's Oracle Driver and DataDirects Oracle drivers all map cursors to getResultSet. Cheers Graham import java.sql.*; import oracle.jdbc.*; /** * @author Graham Cruickshanks * */ public class OracleJDBCTest { /** Store Procedure Definition * * CREATE OR REPLACE * PROCEDURE GetEmpRS (p_deptno IN emp.deptno%TYPE, * p_recordset OUT Types.cursor_type) AS * BEGIN * OPEN p_recordset FOR * SELECT ename, * empno, * deptno * FROM emp * WHERE deptno = p_deptno * ORDER BY ename; * END GetEmpRS; * / */ public static void TestCursorViaGetObject() { try { DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger"); CallableStatement stmt = conn.prepareCall("BEGIN GetEmpRS(?, ?); END;"); stmt.setInt(1, 30); // DEPTNO stmt.registerOutParameter(2, OracleTypes.CURSOR); //REF CURSOR stmt.execute(); ResultSet rs = (ResultSet)stmt.getObject(2); while (rs.next()) { System.out.println(rs.getString("ename") + ":" + rs.getString("empno") + ":" + rs.getString("deptno")); } rs.close(); rs = null; stmt.close(); stmt = null; conn.close(); conn = null; } catch (SQLException e) { System.out.println(e.getLocalizedMessage()); } } public static void TestCursorViaGetResultSet() { try { DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger"); CallableStatement stmt = conn.prepareCall("BEGIN GetEmpRS(?, ?); END;"); stmt.setInt(1, 30); // DEPTNO stmt.registerOutParameter(2, OracleTypes.CURSOR); //REF CURSOR stmt.execute(); ResultSet rs = stmt.getResultSet(); //NULL POINTER HERE, AKA IBATIS SqlExecutor.java while (rs.next()) { System.out.println(rs.getString("ename") + ":" + rs.getString("empno") + ":" + rs.getString("deptno")); } rs.close(); rs = null; stmt.close(); stmt = null; conn.close(); conn = null; } catch (SQLException e) { System.out.println(e.getLocalizedMessage()); } } public static void main(String[] args){ OracleJDBCTest.TestCursorViaGetObject(); OracleJDBCTest.TestCursorViaGetResultSet(); } } >From: Ken Katsma >Reply-To: Ken Katsma >To: ibatis-user-java@incubator.apache.org >CC: clinton.begin@gmail.com >Subject: Re: iBATIS for Java 2.1.0 Released >Date: Mon, 16 May 2005 20:11:23 -0500 > >Graham, > >Oracle doesn't support the getResultSet call in it's JDBC drivers. Though >it >does appear to be a step in the right direction :) > >Ken > >On 5/16/05, Graham Cruickshanks wrote: > > > > Hi Clinton, > > > > Great news on the 2.1.0 release. I see in the change log "Changed SQL > > executor to always call .execute instead of .executeQuery and > > .executeUpdate", does this address bug IBATIS-53? > > > > Cheers > > > > Graham > > > > >From: Clinton Begin > > >Reply-To: cbegin@ibatis.com > > >To: ibatis-dev@incubator.apache.org, > > >"ibatis-user-java@incubator.apache.org" > > > > > >Subject: iBATIS for Java 2.1.0 Released > > >Date: Mon, 16 May 2005 01:58:39 -0600 > > > > > >Hi all.... > > > > > >The subject says it all. 2.1.0 is now available. > > > > > >Change Log: > > http://sourceforge.net/project/shownotes.php?release_id=327667 > > >Download: http://www.ibatis.com/downloads.html > > > > > >Cheers, > > >Clinton > > > >