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;
+ }
+}