You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2009/06/16 06:33:31 UTC

svn commit: r785075 - in /ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql: ./ CreateDB.sql DynSql.xml DynSqlTest.java MapperConfig.xml Parameter.java

Author: cbegin
Date: Tue Jun 16 04:33:30 2009
New Revision: 785075

URL: http://svn.apache.org/viewvc?rev=785075&view=rev
Log:
added new dynamic sql test

Added:
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/CreateDB.sql
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/DynSql.xml
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/DynSqlTest.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/MapperConfig.xml
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/Parameter.java

Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/CreateDB.sql
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/CreateDB.sql?rev=785075&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/CreateDB.sql (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/CreateDB.sql Tue Jun 16 04:33:30 2009
@@ -0,0 +1,12 @@
+
+create table names (
+  id int,
+  description varchar(20)
+);
+
+insert into names (id, description) values(1, 'Fred');
+insert into names (id, description) values(2, 'Wilma');
+insert into names (id, description) values(3, 'Pebbles');
+insert into names (id, description) values(4, 'Barney');
+insert into names (id, description) values(5, 'Betty');
+insert into names (id, description) values(6, 'Bamm Bamm');

Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/DynSql.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/DynSql.xml?rev=785075&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/DynSql.xml (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/DynSql.xml Tue Jun 16 04:33:30 2009
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
+<mapper namespace="org.apache.ibatis.submitted.dynsql">
+  <select id="select" parameterType="org.apache.ibatis.submitted.dynsql.Parameter" resultType="map">
+    <if test="enabled">
+      <foreach collection="ids" item="id" separator="union">
+        <if test="schema != null">
+          select * from names where id = #{id}
+        </if>
+      </foreach>
+    </if>
+  </select>
+
+  <select id="select_simple" parameterType="org.apache.ibatis.submitted.dynsql.Parameter" resultType="map">
+    <foreach collection="ids" index="index" item="id" separator="union">
+      select * from names where id = #{id}
+    </foreach>
+  </select>
+</mapper>
\ No newline at end of file

Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/DynSqlTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/DynSqlTest.java?rev=785075&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/DynSqlTest.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/DynSqlTest.java Tue Jun 16 04:33:30 2009
@@ -0,0 +1,83 @@
+package org.apache.ibatis.submitted.dynsql;
+
+import junit.framework.TestCase;
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.jdbc.ScriptRunner;
+import org.apache.ibatis.session.*;
+import org.junit.*;
+import static org.junit.Assert.*;
+
+import java.io.Reader;
+import java.sql.*;
+import java.util.*;
+
+public class DynSqlTest {
+
+  protected static SqlSessionFactory sqlSessionFactory;
+
+  @BeforeClass
+  public static void setUp() throws Exception {
+    Connection conn = null;
+    try {
+      Reader configReader= Resources.getResourceAsReader("org/apache/ibatis/submitted/dynsql/MapperConfig.xml");
+      sqlSessionFactory = new SqlSessionFactoryBuilder().build(configReader);
+      configReader.close();
+      conn = sqlSessionFactory.getConfiguration().getEnvironment().getDataSource().getConnection();
+
+      Reader scriptReader = Resources.getResourceAsReader("org/apache/ibatis/submitted/dynsql/CreateDB.sql");
+      ScriptRunner runner = new ScriptRunner(conn);
+//      runner.setLogWriter(null);
+//      runner.setErrorLogWriter(null);
+      runner.runScript(scriptReader);
+      conn.commit();
+      scriptReader.close();
+
+    } finally {
+      if (conn != null) {
+        conn.close();
+      }
+    }
+  }
+
+  @Test
+  public void testSelect() {
+    SqlSession sqlSession = sqlSessionFactory.openSession();
+    try {
+      List<Integer> ids = new ArrayList<Integer>();
+      ids.add(1);
+      ids.add(3);
+      ids.add(5);
+      Parameter parameter = new Parameter();
+      parameter.setEnabled(true);
+      parameter.setSchema("ibtest");
+      parameter.setIds(ids);
+
+      List<Map<String, Object>> answer = sqlSession.selectList("org.apache.ibatis.submitted.dynsql.select", parameter);
+
+      assertTrue(answer.size() == 3);
+    } finally {
+      sqlSession.close();
+    }
+  }
+
+  @Test
+  public void testSelectSimple() {
+    SqlSession sqlSession = sqlSessionFactory.openSession();
+    try {
+      List<Integer> ids = new ArrayList<Integer>();
+      ids.add(1);
+      ids.add(3);
+      ids.add(5);
+      Parameter parameter = new Parameter();
+      parameter.setEnabled(true);
+      parameter.setSchema("ibtest");
+      parameter.setIds(ids);
+
+      List<Map<String, Object>> answer = sqlSession.selectList("org.apache.ibatis.submitted.dynsql.select_simple", parameter);
+
+      assertTrue(answer.size() == 3);
+    } finally {
+      sqlSession.close();
+    }
+  }
+}

Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/MapperConfig.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/MapperConfig.xml?rev=785075&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/MapperConfig.xml (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/MapperConfig.xml Tue Jun 16 04:33:30 2009
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE configuration
+    PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
+    "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
+<configuration>
+
+  <environments default="development">
+    <environment id="development">
+      <transactionManager type="JDBC">
+        <property name="" value=""/>
+      </transactionManager>
+      <dataSource type="UNPOOLED">
+        <property name="driver" value="org.hsqldb.jdbcDriver"/>
+        <property name="url" value="jdbc:hsqldb:mem:aname"/>
+        <property name="username" value="sa"/>
+      </dataSource>
+    </environment>
+  </environments>
+
+  <mappers>
+    <mapper resource="org/apache/ibatis/submitted/dynsql/DynSql.xml"/>
+  </mappers>
+
+</configuration>

Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/Parameter.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/Parameter.java?rev=785075&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/Parameter.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/dynsql/Parameter.java Tue Jun 16 04:33:30 2009
@@ -0,0 +1,52 @@
+/*
+ *  Copyright 2009 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.ibatis.submitted.dynsql;
+
+import java.util.List;
+
+/**
+ * @author Jeff Butler
+ */
+public class Parameter {
+  private String schema;
+  private List<Integer> ids;
+  private boolean enabled;
+
+  public String getSchema() {
+    return schema;
+  }
+
+  public void setSchema(String schema) {
+    this.schema = schema;
+  }
+
+  public List<Integer> getIds() {
+    return ids;
+  }
+
+  public void setIds(List<Integer> ids) {
+    this.ids = ids;
+  }
+
+  public boolean isEnabled() {
+    return enabled;
+  }
+
+  public void setEnabled(boolean enabled) {
+    this.enabled = enabled;
+  }
+}