ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From novotny <novo...@gridsphere.org>
Subject RE: how to create custom TypeHandlerCallback to trim string whitespace
Date Tue, 22 Jan 2008 20:59:31 GMT

Hi,

I'm not quite sure what you mean-- this is what I have in my sql-ibatis.xml
file:

<select id="GetAllSecTiers" resultClass="java.util.HashMap">
        select
            sm_issue_symbol,
            tm_id
        from
            sec_master,
            category_security,
            tier_mast
        where sm_secid = cs_secid
            and cs_tierid = tm_id
            and sm_issue_symbol is not NULL
            and sm_issue_symbol != " "
        order by 1, 2;
    </select>

So my resultMap is just a generic HashMap where the keys consist of the
sm_issue_symbol that I want trimmed and the values are the integers from the
tm_id column.
What would the property attribute in the result element need to be set to?

Thanks, Jason



Kezerashvili, Denis wrote:
> 
> One more point, you need the following in your sql mapping xml file, in
> you result map, for the column you want to trim:
>  
> 
> <result property="[propertyToSet]" column="[columnNameToUse]"
> javaType="StringTypeHandlerCallback" jdbcType="VARCHAR"/>
> 
> Replace things in [] with correct values for your use.
> 
> Make sure the StringTypeHandlerCallback is either fully qualified name
> of defined in the typeAlias.
> 
> Denis
> 
> -----Original Message-----
> From: novotny [mailto:novotny@gridsphere.org] 
> Sent: Friday, January 18, 2008 2:02 PM
> To: user-java@ibatis.apache.org
> Subject: how to create custom TypeHandlerCallback to trim string
> whitespace
> 
> 
> Hi,
> 
>  I'm using an informix database and querying for a map containing string
> keys and integer values. The keys are stored as type CHAR in the
> database
> and normally when I get them back they contain extar whitespace. I'm
> trying
> to create a custom handler like so:
> 
> public class StringTypeHandlerCallback implements TypeHandlerCallback {
> 
> 
>     public void setParameter(ParameterSetter parameterSetter, Object o)
> throws SQLException {
>         parameterSetter.setString(((String)o).trim());
>     }
> 
>     public Object getResult(ResultGetter resultGetter) throws
> SQLException {
>         return resultGetter.getString().trim();
>     }
> 
>     public Object valueOf(String s) {
>         return s.trim();
>     }
> }
> 
> and I added 
> 
> <typeHandler callback="StringTypeHandlerCallback" javaType="string"
> jdbcType="CHAR"/>
> 
> but it doesn't seem to work-- the strings still have the whitespace.
> 
> Here was my query:
> 
> Map<String, Integer> m = sqlMapClient.queryForMap(QUERY, qwest,
> "sm_qwest",
> "tm_id");
> 
> Any help is greatly appreciated!
> 
> Thanks, Jason
> -- 
> View this message in context:
> http://www.nabble.com/how-to-create-custom-TypeHandlerCallback-to-trim-s
> tring-whitespace-tp14956784p14956784.html
> Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
> 
> 

-- 
View this message in context: http://www.nabble.com/how-to-create-custom-TypeHandlerCallback-to-trim-string-whitespace-tp14956784p15028271.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


Mime
View raw message