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/10/06 09:20:26 UTC
svn commit: r822150 - in /ibatis/java/ibatis-3/trunk/ibatis-3-core/src:
main/java/org/apache/ibatis/executor/resultset/
test/java/org/apache/ibatis/submitted/primitive_result_type/
Author: cbegin
Date: Tue Oct 6 07:20:26 2009
New Revision: 822150
URL: http://svn.apache.org/viewvc?rev=822150&view=rev
Log:
IBATIS-644 ClassCastException: BigDecimal cannot be cast to Integer fixed
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/IbatisConfig.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/PrimitiveResultTypeTest.java (with props)
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductDAO.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.java (with props)
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.xml (with props)
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/create.sql (with props)
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ibatis.xml (with props)
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java?rev=822150&r1=822149&r2=822150&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java Tue Oct 6 07:20:26 2009
@@ -266,8 +266,10 @@
final String columnName = configuration.isUseColumnLabel() ? rsmd.getColumnLabel(i) : rsmd.getColumnName(i);
final String upperColumnName = columnName.toUpperCase();
if (mappedColumns.contains(upperColumnName)) {
+ mappedColumnNames.add(upperColumnName);
mappedColumnNames.add(columnName);
} else {
+ unmappedColumnNames.add(upperColumnName);
unmappedColumnNames.add(columnName);
}
}
Added: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/IbatisConfig.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/IbatisConfig.java?rev=822150&view=auto
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/IbatisConfig.java (added)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/IbatisConfig.java Tue Oct 6 07:20:26 2009
@@ -0,0 +1,34 @@
+package org.apache.ibatis.submitted.primitive_result_type;
+
+import java.io.Reader;
+
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.session.SqlSessionFactoryBuilder;
+
+public class IbatisConfig {
+
+ private static SqlSessionFactory sqlSessionFactory;
+
+ private IbatisConfig() {
+ }
+
+ private static synchronized void init() {
+ if (sqlSessionFactory == null)
+ try {
+ final String resource = "org/apache/ibatis/submitted/primitive_result_type/ibatis.xml";
+ Reader reader = Resources.getResourceAsReader(resource);
+ sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public static SqlSession getSession() {
+ if (sqlSessionFactory == null) {
+ init();
+ }
+ return sqlSessionFactory.openSession();
+ }
+}
\ No newline at end of file
Added: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/PrimitiveResultTypeTest.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/PrimitiveResultTypeTest.java?rev=822150&view=auto
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/PrimitiveResultTypeTest.java (added)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/PrimitiveResultTypeTest.java Tue Oct 6 07:20:26 2009
@@ -0,0 +1,42 @@
+package org.apache.ibatis.submitted.primitive_result_type;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+import org.junit.BeforeClass;
+import org.apache.ibatis.jdbc.ScriptRunner;
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.session.SqlSession;
+
+import java.util.List;
+import java.sql.Connection;
+import java.io.Reader;
+import java.math.BigDecimal;
+
+public class PrimitiveResultTypeTest {
+
+ @BeforeClass
+ public static void setup() throws Exception {
+ SqlSession session = IbatisConfig.getSession();
+ Connection conn = session.getConnection();
+ ScriptRunner runner = new ScriptRunner(conn);
+ Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/primitive_result_type/create.sql");
+ runner.runScript(reader);
+ }
+
+ @Test
+ public void shouldReturnProperPrimitiveType() {
+ List codes = ProductDAO.selectProductCodes();
+ for (Object code : codes) {
+ assertTrue(code instanceof Integer);
+ }
+ List lcodes = ProductDAO.selectProductCodesL();
+ for (Object lcode : lcodes) {
+ System.out.println(lcode instanceof Integer);
+ }
+ List bcodes = ProductDAO.selectProductCodesB();
+ for (Object bcode : bcodes) {
+ System.out.println(bcode instanceof BigDecimal);
+ }
+ }
+
+}
Propchange: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/PrimitiveResultTypeTest.java
------------------------------------------------------------------------------
svn:executable = *
Added: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductDAO.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductDAO.java?rev=822150&view=auto
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductDAO.java (added)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductDAO.java Tue Oct 6 07:20:26 2009
@@ -0,0 +1,47 @@
+package org.apache.ibatis.submitted.primitive_result_type;
+
+import java.util.List;
+import java.math.BigDecimal;
+
+import org.apache.ibatis.session.SqlSession;
+
+public class ProductDAO {
+
+ public static List<Integer> selectProductCodes() {
+ SqlSession session = IbatisConfig.getSession();
+ try {
+ ProductMapper productMapper = session.getMapper(ProductMapper.class);
+ return productMapper.selectProductCodes();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ session.close();
+ }
+ }
+
+ public static List<Long> selectProductCodesL() {
+ SqlSession session = IbatisConfig.getSession();
+ try {
+ ProductMapper productMapper = session.getMapper(ProductMapper.class);
+ return productMapper.selectProductCodesL();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ session.close();
+ }
+ }
+
+ public static List<BigDecimal> selectProductCodesB() {
+ SqlSession session = IbatisConfig.getSession();
+ try {
+ ProductMapper productMapper = session.getMapper(ProductMapper.class);
+ return productMapper.selectProductCodesB();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ session.close();
+ }
+ }
+
+
+}
\ No newline at end of file
Added: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.java?rev=822150&view=auto
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.java (added)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.java Tue Oct 6 07:20:26 2009
@@ -0,0 +1,14 @@
+package org.apache.ibatis.submitted.primitive_result_type;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+public interface ProductMapper {
+
+ List<Integer> selectProductCodes();
+
+ List<Long> selectProductCodesL();
+
+ List<BigDecimal> selectProductCodesB();
+
+}
Propchange: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.java
------------------------------------------------------------------------------
svn:executable = *
Added: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.xml
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.xml?rev=822150&view=auto
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.xml (added)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.xml Tue Oct 6 07:20:26 2009
@@ -0,0 +1,21 @@
+<?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.primitive_result_type.ProductMapper">
+
+ <select id="selectProductCodes" resultType="Integer">
+ select distinct productcode from product
+ </select>
+
+ <select id="selectProductCodesL" resultType="Long">
+ select distinct productcode from product
+ </select>
+
+ <select id="selectProductCodesB" resultType="BigDecimal">
+ select distinct productcode from product
+ </select>
+
+</mapper>
\ No newline at end of file
Propchange: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductMapper.xml
------------------------------------------------------------------------------
svn:executable = *
Added: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/create.sql
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/create.sql?rev=822150&view=auto
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/create.sql (added)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/create.sql Tue Oct 6 07:20:26 2009
@@ -0,0 +1,5 @@
+CREATE MEMORY TABLE PRODUCT(PRODUCTCODE NUMERIC);
+INSERT INTO PRODUCT VALUES(5);
+INSERT INTO PRODUCT VALUES(6);
+INSERT INTO PRODUCT VALUES(1000);
+INSERT INTO PRODUCT VALUES(2000);
Propchange: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/create.sql
------------------------------------------------------------------------------
svn:executable = *
Added: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ibatis.xml
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ibatis.xml?rev=822150&view=auto
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ibatis.xml (added)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ibatis.xml Tue Oct 6 07:20:26 2009
@@ -0,0 +1,26 @@
+<?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:rname"/>
+ <property name="username" value="sa"/>
+ </dataSource>
+ </environment>
+ </environments>
+
+ <mappers>
+ <mapper resource="org/apache/ibatis/submitted/primitive_result_type/ProductMapper.xml"/>
+ </mappers>
+
+</configuration>
\ No newline at end of file
Propchange: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ibatis.xml
------------------------------------------------------------------------------
svn:executable = *