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