ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clinton Begin <clinton.be...@gmail.com>
Subject Re: Should IntegerTypeHandler use Integer.valueOf instead of new Integer()
Date Sat, 06 Mar 2010 00:17:34 GMT
Yes, that's correct.

Cheers,
Clinton

On Fri, Mar 5, 2010 at 1:13 PM, Michael Schall <mike.schall@gmail.com> wrote:
> In looking at this further... Resultset.getInt returns an int...
> http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html#getInt(int)
>
> However the autoboxing feature of Java 1.5 converts it to an Integer.
>
>        public void testAutoboxing() {
>                int i = 1;
>                Object o = i;
>                assertTrue(o.getClass().equals(Integer.class));
>        }
>
> So the 2.3.4 IntegerTypeHandler should be able to be...
>
>  public Object getResult(ResultSet rs, String columnName)
>      throws SQLException {
>    int i = rs.getInt(columnName);
>    if (rs.wasNull()) {
>      return null;
>    } else {
>      return i;
>    }
>  }
>
> Correct?
> Mike
>
>
> On Thu, Mar 4, 2010 at 3:39 PM, Nathan Maves <nathan.maves@gmail.com> wrote:
>> Here is how IB3 does it
>> BaseTypeHandler
>>   public Object getResult(ResultSet rs, String columnName)
>>       throws SQLException {
>>     Object result = getNullableResult(rs, columnName);
>>     if (rs.wasNull()) {
>>       return null;
>>     } else {
>>       return result;
>>     }
>>   }
>> IntegerTypeHandler
>>   public Object getNullableResult(ResultSet rs, String columnName)
>>       throws SQLException {
>>     return rs.getInt(columnName);
>>   }
>> So the actual Integer creation is done by the driver.
>> On Thu, Mar 4, 2010 at 11:53 AM, Michael Schall <mike.schall@gmail.com>
>> wrote:
>>>
>>> I have been doing some performance tuning and looking a heap dumps.
>>> The number of Integer objects in memory is staggering. Looking at the
>>> 1.5 java docs, using Integer.valueOf should help.
>>>
>>> http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html#valueOf(int)
>>>
>>> This could be extended to most of the number type TypeHandlers in the
>>> 2.3.4 code base as it requires Java 1.5.  How is this handled in 3.0?
>>>
>>> IntegerTypeHandler (version 2.3.4 )
>>>  public Object getResult(ResultSet rs, String columnName)
>>>      throws SQLException {
>>>    int i = rs.getInt(columnName);
>>>    if (rs.wasNull()) {
>>>      return null;
>>>    } else {
>>>      return new Integer(i);
>>>    }
>>>  }
>>>
>>> Mike
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: user-java-help@ibatis.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
For additional commands, e-mail: user-java-help@ibatis.apache.org


Mime
View raw message