Author: cbegin
Date: Fri Jun  5 03:33:52 2009
New Revision: 781902

URL: http://svn.apache.org/viewvc?rev=781902&view=rev
Log:
removed accidental alias resolution on JDBC types

Added:
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/IntegerEnumTest.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/Mapper.xml
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/MapperConfig.xml
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/Record.java
Modified:
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/BaseBuilder.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.java

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/BaseBuilder.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/BaseBuilder.java?rev=781902&r1=781901&r2=781902&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/BaseBuilder.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/BaseBuilder.java
 Fri Jun  5 03:33:52 2009
@@ -33,7 +33,7 @@
   protected JdbcType resolveJdbcType(String alias) {
     if (alias == null) return null;
     try {
-      return JdbcType.valueOf(resolveAlias(alias));
+      return JdbcType.valueOf(alias);
     } catch (IllegalArgumentException e) {
       throw new BuilderException("Error resolving JdbcType. Cause: " + e, e);
     }

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.java?rev=781902&r1=781901&r2=781902&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.java
 Fri Jun  5 03:33:52 2009
@@ -7,6 +7,7 @@
 import org.apache.ibatis.mapping.*;
 import org.apache.ibatis.session.*;
 import org.apache.ibatis.transaction.*;
+import org.apache.ibatis.transaction.managed.ManagedTransactionFactory;
 
 import javax.sql.DataSource;
 import java.sql.*;
@@ -23,8 +24,13 @@
   public DefaultSqlSessionFactory(Configuration configuration) {
     this.configuration = configuration;
     this.environment = configuration.getEnvironment();
-    this.dataSource = environment.getDataSource();
-    this.transactionFactory = environment.getTransactionFactory();
+    if (environment == null) {
+      this.dataSource = null;
+      this.transactionFactory = new ManagedTransactionFactory();
+    } else {
+      this.dataSource = environment.getDataSource();
+      this.transactionFactory = environment.getTransactionFactory();
+    }
   }
 
   public SqlSession openSession() {
@@ -41,6 +47,9 @@
 
   public SqlSession openSession(ExecutorType execType, boolean autoCommit) {
     try {
+      if (dataSource == null) {
+        throw new SessionException("Configuration does not include an 
environment with a DataSource, so session cannot be created unless a connection 
is passed in.");
+      }
       Connection connection = dataSource.getConnection();
       connection = wrapConnection(connection);
       Transaction tx = transactionFactory.newTransaction(connection, 
autoCommit);

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/IntegerEnumTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/IntegerEnumTest.java?rev=781902&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/IntegerEnumTest.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/IntegerEnumTest.java
 Fri Jun  5 03:33:52 2009
@@ -0,0 +1,32 @@
+package org.apache.ibatis.submitted.integer_enum;
+
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.session.*;
+import org.apache.ibatis.BaseDataTest;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+import javax.sql.DataSource;
+import java.io.Reader;
+import java.sql.Connection;
+
+public class IntegerEnumTest extends BaseDataTest {
+
+  @Test
+  public void shouldParseMapWithIntegerJdbcType() throws Exception {
+    DataSource ds = BaseDataTest.createJPetstoreDataSource();
+    Connection conn = ds.getConnection();
+    String resource = 
"org/apache/ibatis/submitted/integer_enum/MapperConfig.xml";
+    Reader reader = Resources.getResourceAsReader(resource);
+    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
+    SqlSessionFactory sqlMapper = builder.build(reader);
+    SqlSession session = sqlMapper.openSession(conn);
+    try {
+      assertNotNull(session);
+    } finally {
+      if (session != null) session.close();
+      if (conn != null) conn.close();
+    }
+  }
+
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/Mapper.xml
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/Mapper.xml?rev=781902&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/Mapper.xml
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/Mapper.xml
 Fri Jun  5 03:33:52 2009
@@ -0,0 +1,22 @@
+<?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="testcase">
+
+  <resultMap id="tastCaseResultMap" 
type="org.apache.ibatis.submitted.integer_enum.Record">
+    <result jdbcType="INTEGER" column="FIELD1" property="field1"/>
+    <result jdbcType="INTEGER" column="FIELD2" property="field2"/>
+    <result jdbcType="VARCHAR" column="FIELD3" property="field3"/>
+  </resultMap>
+
+  <select id="select" resultMap="tastCaseResultMap">
+    select field1, field2, field3
+    from SomeTable
+  </select>
+
+  <update id="update" 
parameterType="org.apache.ibatis.submitted.integer_enum.Record">
+    update SomeTable
+    set Field2 = #{field2,jdbcType=INTEGER},
+    Field3 = #{field3,jdbcType=VARCHAR},
+    where field1 = #{field1,jdbcType=INTEGER}
+  </update>
+</mapper>
\ No newline at end of file

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/MapperConfig.xml
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/MapperConfig.xml?rev=781902&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/MapperConfig.xml
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/MapperConfig.xml
 Fri Jun  5 03:33:52 2009
@@ -0,0 +1,12 @@
+<?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>
+
+  <mappers>
+    <mapper resource="org/apache/ibatis/submitted/integer_enum/Mapper.xml"/>
+  </mappers>
+
+</configuration>

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/Record.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/Record.java?rev=781902&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/Record.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/integer_enum/Record.java
 Fri Jun  5 03:33:52 2009
@@ -0,0 +1,32 @@
+package org.apache.ibatis.submitted.integer_enum;
+
+public class Record {
+
+  private Integer field1;
+  private Integer field2;
+  private String field3;
+
+  public Integer getField1() {
+    return field1;
+  }
+
+  public void setField1(Integer field1) {
+    this.field1 = field1;
+  }
+
+  public Integer getField2() {
+    return field2;
+  }
+
+  public void setField2(Integer field2) {
+    this.field2 = field2;
+  }
+
+  public String getField3() {
+    return field3;
+  }
+
+  public void setField3(String field3) {
+    this.field3 = field3;
+  }
+}


Reply via email to