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