You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by bg...@apache.org on 2006/06/11 04:18:45 UTC

svn commit: r413400 - in /ibatis/trunk/java/mapper/mapper2: devbin/ devlib/ test/com/ibatis/sqlmap/ test/com/ibatis/sqlmap/maps/ test/com/ibatis/sqlmap/proc/ test/scripts/

Author: bgoodin
Date: Sat Jun 10 19:18:44 2006
New Revision: 413400

URL: http://svn.apache.org/viewvc?rev=413400&view=rev
Log:
IBATIS-28
- added a devbin directory containing files to start derby command line to manage derby test databse 
- added working test that returns multiple resultsets
- added new DerbySqlMapConfig.xml, DerbyProc.xml
- added derby tools jar for derby db management
- updated MultiResultSetTest to create multiple resultset return scenario
- added test/com/ibatis/sqlmap/proc/DerbyProcs class that is the procedure used by derby. derby uses java for it's procedures.
- added test/scripts/derby-proc-init.sql

Added:
    ibatis/trunk/java/mapper/mapper2/devbin/
    ibatis/trunk/java/mapper/mapper2/devbin/ij.bat
    ibatis/trunk/java/mapper/mapper2/devbin/setEmbeddedCP.bat
    ibatis/trunk/java/mapper/mapper2/devlib/derbytools.jar   (with props)
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbyProc.xml
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbySqlMapConfig.xml
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/proc/
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/proc/DerbyProcs.java
    ibatis/trunk/java/mapper/mapper2/test/scripts/derby-proc-init.sql
Modified:
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/MultiResultSetTest.java

Added: ibatis/trunk/java/mapper/mapper2/devbin/ij.bat
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/devbin/ij.bat?rev=413400&view=auto
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/devbin/ij.bat (added)
+++ ibatis/trunk/java/mapper/mapper2/devbin/ij.bat Sat Jun 10 19:18:44 2006
@@ -0,0 +1,26 @@
+@REM ---------------------------------------------------------
+@REM -- This batch file is an example of how to start ij in 
+@REM -- an embedded environment.
+@REM --
+@REM -- REQUIREMENTS: 
+@REM -- You must have the Derby libraries in your classpath
+@REM -- 
+@REM -- See the setEmbeddedCP.bat for an example of
+@REM -- how to do this.
+@REM --
+@REM -- This file for use on Windows systems
+@REM ---------------------------------------------------------
+
+call setEmbeddedCP.bat
+
+@REM ---------------------------------------------------------
+@REM -- start ij
+@REM ---------------------------------------------------------
+java -Dij.protocol=jdbc:derby: -Dij.database=../ibderby;create=true -cp %DCP% org.apache.derby.tools.ij
+
+
+@REM ---------------------------------------------------------
+@REM -- To use a different JVM with a different syntax, simply edit
+@REM -- this file
+@REM ---------------------------------------------------------
+

Added: ibatis/trunk/java/mapper/mapper2/devbin/setEmbeddedCP.bat
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/devbin/setEmbeddedCP.bat?rev=413400&view=auto
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/devbin/setEmbeddedCP.bat (added)
+++ ibatis/trunk/java/mapper/mapper2/devbin/setEmbeddedCP.bat Sat Jun 10 19:18:44 2006
@@ -0,0 +1,15 @@
+@REM ---------------------------------------------------------
+@REM -- This batch file sets the CLASSPATH environment variable
+@REM -- for use with Derby products in embedded mode
+@REM --
+@REM -- To use this script from other locations, change the 
+@REM -- value assigned to DERBY_INSTALL to be an absolute path 
+@REM -- (set DERBY_INSTALL=C:\derby) instead of the current relative path
+@REM --
+@REM -- This file for use on Windows systems
+@REM -- 
+@REM ---------------------------------------------------------
+
+set DERBY_INSTALL=..
+
+set DCP=%DERBY_INSTALL%\devlib\derby.jar;%DERBY_INSTALL%\devlib\derbytools.jar

Added: ibatis/trunk/java/mapper/mapper2/devlib/derbytools.jar
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/devlib/derbytools.jar?rev=413400&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ibatis/trunk/java/mapper/mapper2/devlib/derbytools.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/MultiResultSetTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/MultiResultSetTest.java?rev=413400&r1=413399&r2=413400&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/MultiResultSetTest.java (original)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/MultiResultSetTest.java Sat Jun 10 19:18:44 2006
@@ -1,5 +1,10 @@
 package com.ibatis.sqlmap;
 
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 import com.ibatis.common.resources.Resources;
 
 
@@ -10,12 +15,37 @@
   protected void setUp() throws Exception {
       
     initSqlMap(
-            "com/ibatis/sqlmap/maps/SqlMapConfig.xml", 
+            "com/ibatis/sqlmap/maps/DerbySqlMapConfig.xml", 
             Resources.getResourceAsProperties(
                     "com/ibatis/sqlmap/maps/DerbySqlMapConfig.properties"));
     
     initScript("scripts/account-init.sql");
+    initScript("scripts/derby-proc-init.sql");
+    
+  }
+  
+  /**
+   * This test should return 2 lists of 2 accounts each
+   * 
+   */
+  public void test01() {
     
+    Map persons = new HashMap();
+    persons.put("accountId1",new Integer(1));
+    persons.put("accountId2",new Integer(2));
+    persons.put("accountId3",new Integer(3));
+    persons.put("accountId4",new Integer(4));
+      
+    try {
+      List results = 
+          sqlMap.queryForList("getMultiListsRm", persons);
+      assertFalse(results.isEmpty());
+      // need assertion to check for list in list with 2 accounts each
+    } catch (Exception e) {
+      fail(e.getMessage());
+    }
   }
+  
+  
 
 }

Added: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbyProc.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbyProc.xml?rev=413400&view=auto
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbyProc.xml (added)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbyProc.xml Sat Jun 10 19:18:44 2006
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE sqlMap      
+    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"      
+    "http://ibatis.apache.org/dtd/sql-map-2.dtd">
+
+<sqlMap namespace="DerbyProc">
+
+  <typeAlias alias="account" type="testdomain.Account"/>
+
+  <parameterMap id="multiList" class="map" >
+    <parameter property="accountId1" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/>
+    <parameter property="accountId2" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/>
+    <parameter property="accountId3" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/>
+    <parameter property="accountId4" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/>
+  </parameterMap>
+  
+  <resultMap id="account-result" class="account">
+    <result property="id" column="ACC_ID" columnIndex="1"/>
+    <result property="firstName" column="ACC_FIRST_NAME" columnIndex="2"/>
+    <result property="lastName" column="ACC_LAST_NAME" columnIndex="3"/>
+    <result property="emailAddress" column="ACC_EMAIL" columnIndex="4" nullValue="no_email@provided.com"/>
+  </resultMap>
+  <!-- <parameter property="accountList" javaType="list" mode="OUT"/> -->
+  <!-- <parameter property="accountList" javaType="list" mode="OUT"/> -->
+  
+  <procedure id="getMultiListsRm" parameterMap="multiList" resultMap="account-result">
+     {call MRESULTSET(?,?,?,?)}
+  </procedure>
+  
+  <procedure id="getMultiListsRc" parameterMap="multiList" resultClass="account">
+     {call MRESULTSET(?,?,?,?)}
+  </procedure>
+</sqlMap>
\ No newline at end of file

Added: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbySqlMapConfig.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbySqlMapConfig.xml?rev=413400&view=auto
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbySqlMapConfig.xml (added)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbySqlMapConfig.xml Sat Jun 10 19:18:44 2006
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE sqlMapConfig      
+    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
+    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
+
+<sqlMapConfig>
+
+  <properties resource="com/ibatis/sqlmap/maps/DerbySqlMapConfig.properties"/>
+
+  <!-- settings
+	add these to test bug 976614
+	enhancementEnabled="false"
+    lazyLoadingEnabled="false"
+  -->
+
+  <settings
+    cacheModelsEnabled="true"
+    enhancementEnabled="false"
+    lazyLoadingEnabled="true"
+    maxRequests="32"
+    maxSessions="10"
+    maxTransactions="5"
+    useStatementNamespaces="false"
+    />
+
+  <typeAlias alias="order" type="testdomain.Order"/>
+  <typeAlias alias="OuiNonBool" type="com.ibatis.sqlmap.extensions.PirateTypeHandlerCallback"/>
+
+  <typeHandler javaType="boolean" jdbcType="VARCHAR" callback="OuiNonBool"/>
+
+  <transactionManager type="JDBC" commitRequired="false">
+    <dataSource type="${dataSourceType}">
+      <property name="JDBC.Driver" value="${driver}"/>
+      <property name="JDBC.ConnectionURL" value="${url}"/>
+      <property name="JDBC.Username" value="${username}"/>
+      <property name="JDBC.Password" value="${password}"/>
+      <property name="JDBC.DefaultAutoCommit" value="true"/>
+      <property name="Pool.MaximumActiveConnections" value="10"/>
+      <property name="Pool.MaximumIdleConnections" value="5"/>
+      <property name="Pool.MaximumCheckoutTime" value="120000"/>
+      <property name="Pool.TimeToWait" value="500"/>
+      <property name="Pool.PingQuery" value="select 1 from ACCOUNT"/>
+      <property name="Pool.PingEnabled" value="false"/>
+      <property name="Pool.PingConnectionsOlderThan" value="1"/>
+      <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
+      <property name="Pool.QuietMode" value="true"/>
+    </dataSource>
+  </transactionManager>
+
+  <sqlMap resource="${SqlMapPath}/DerbyProc.xml"/>
+  
+</sqlMapConfig>
+

Added: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/proc/DerbyProcs.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/proc/DerbyProcs.java?rev=413400&view=auto
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/proc/DerbyProcs.java (added)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/proc/DerbyProcs.java Sat Jun 10 19:18:44 2006
@@ -0,0 +1,36 @@
+package com.ibatis.sqlmap.proc;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public class DerbyProcs {
+
+    public static void selectRows(
+      int p1, int p2, 
+      int p3, int p4,
+      ResultSet[] rs1,
+      ResultSet[] rs2) 
+    throws SQLException {
+      
+      System.out.println("IN THE PROC " + p1 + " " + p2 + " " + p3 + " " + p4);
+      Connection conn = DriverManager.getConnection("jdbc:default:connection");
+      
+      PreparedStatement ps1 = conn.prepareStatement("select * from account where acc_id in (?,?)");
+      ps1.setInt(1, p1);
+      ps1.setInt(2, p2);
+      
+      rs1[0] = ps1.executeQuery();
+
+      PreparedStatement ps2 = conn.prepareStatement("select * from account where acc_id in (?,?)");
+      ps2.setInt(1, p3);
+      ps2.setInt(2, p4);
+      
+      rs1[0] = ps2.executeQuery();
+
+      conn.close();
+    }
+    
+}
\ No newline at end of file

Added: ibatis/trunk/java/mapper/mapper2/test/scripts/derby-proc-init.sql
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/scripts/derby-proc-init.sql?rev=413400&view=auto
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/scripts/derby-proc-init.sql (added)
+++ ibatis/trunk/java/mapper/mapper2/test/scripts/derby-proc-init.sql Sat Jun 10 19:18:44 2006
@@ -0,0 +1,8 @@
+DROP PROCEDURE MRESULTSET;
+
+CREATE PROCEDURE MRESULTSET(DP1 INTEGER, DP2 INTEGER, DP3 INTEGER, DP4 INTEGER)
+PARAMETER STYLE JAVA
+LANGUAGE JAVA
+READS SQL DATA
+DYNAMIC RESULT SETS 2
+EXTERNAL NAME 'com.ibatis.sqlmap.proc.DerbyProcs.selectRows';
\ No newline at end of file