commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Pederzolli <jpederzo...@gmail.com>
Subject Re: [PATCH] DBUtils : workaround for Oracle NUMBER datatype
Date Wed, 14 Jul 2004 20:30:46 GMT
Actually I was working off a new cvs checkout. The problem I was
referring to was the following: say you have an object with methods 
int getAccount() and setAccount(int), and the account is stored as a
number datatype in oracle. If you are using the BeanListHandler to run
a query, the account will always be set to zero regardless of the data
stored. The patch I wrote fixed this ; I realize that the number
datatype is not ideal for account, this is just an example...

On Wed, 14 Jul 2004 11:24:54 -0700 (PDT), David Graham
<grahamdavid1980@yahoo.com> wrote:
> Download a recent nightly build.  This problem has already been fixed.
> 
> David
> 
> 
> 
> 
> --- John Pederzolli <jpederzolli@gmail.com> wrote:
> > This patch allows the object get/set datatypes to be float, double, or
> > int (if possible). The current codebase requires get/set datatypes to
> > be BigDecimal.
> > > Index: BasicRowProcessor.java
> > ===================================================================
> > RCS file:
> >
> /home/cvspublic/jakarta-commons/dbutils/src/java/org/apache/commons/dbutils/BasicRowProcessor.java,v
> > retrieving revision 1.10
> > diff -r1.10 BasicRowProcessor.java
> > 2c2,58
> > <  * Copyright 2002-2004 The Apache Software Foundation
> > ---
> > >  * $Header:
> >
> /home/cvs/jakarta-commons/dbutils/src/java/org/apache/commons/dbutils/BasicRowProcessor.java,v
> > 1.5 2003/11/11 00:53:19 dgraham Exp $
> > >  * $Revision: 1.5 $
> > >  * $Date: 2003/11/11 00:53:19 $
> > >  *
> > >  *
> > ====================================================================
> > >  *
> > >  * The Apache Software License, Version 1.1
> > >  *
> > >  * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
> > >  * reserved.
> > >  *
> > >  * Redistribution and use in source and binary forms, with or without
> > >  * modification, are permitted provided that the following conditions
> > >  * are met:
> > >  *
> > >  * 1. Redistributions of source code must retain the above copyright
> > >  *    notice, this list of conditions and the following disclaimer.
> > >  *
> > >  * 2. Redistributions in binary form must reproduce the above
> > copyright
> > >  *    notice, this list of conditions and the following disclaimer in
> > >  *    the documentation and/or other materials provided with the
> > >  *    distribution.
> > >  *
> > >  * 3. The end-user documentation included with the redistribution, if
> > >  *    any, must include the following acknowledgement:
> > >  *       "This product includes software developed by the
> > >  *        Apache Software Foundation (http://www.apache.org/)."
> > >  *    Alternately, this acknowledgement may appear in the software
> > itself,
> > >  *    if and wherever such third-party acknowledgements normally
> > appear.
> > >  *
> > >  * 4. The names "The Jakarta Project", "Commons", and "Apache Software
> > >  *    Foundation" must not be used to endorse or promote products
> > derived
> > >  *    from this software without prior written permission. For written
> > >  *    permission, please contact apache@apache.org.
> > >  *
> > >  * 5. Products derived from this software may not be called "Apache"
> > >  *    nor may "Apache" appear in their names without prior written
> > >  *    permission of the Apache Software Foundation.
> > >  *
> > >  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> > >  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> > >  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > >  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> > >  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > >  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> > >  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> > >  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> > >  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> > >  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> > >  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> > >  * SUCH DAMAGE.
> > >  *
> > ====================================================================
> > >  *
> > >  * This software consists of voluntary contributions made by many
> > >  * individuals on behalf of the Apache Software Foundation.  For more
> > >  * information on the Apache Software Foundation, please see
> > >  * <http://www.apache.org/>.
> > 4,14d59
> > <  * Licensed under the Apache License, Version 2.0 (the "License");
> > <  * you may not use this file except in compliance with the License.
> > <  * You may obtain a copy of the License at
> > <  *
> > <  *     http://www.apache.org/licenses/LICENSE-2.0
> > <  *
> > <  * Unless required by applicable law or agreed to in writing, software
> > <  * distributed under the License is distributed on an "AS IS" BASIS,
> > <  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> > implied.
> > <  * See the License for the specific language governing permissions and
> > <  * limitations under the License.
> > 15a61
> > >
> > 17a64,69
> > > import java.beans.BeanInfo;
> > > import java.beans.IntrospectionException;
> > > import java.beans.Introspector;
> > > import java.beans.PropertyDescriptor;
> > > import java.lang.reflect.InvocationTargetException;
> > > import java.lang.reflect.Method;
> > 20a73
> > > import java.util.ArrayList;
> > 24a78
> > > import java.math.BigDecimal;
> > 28,32c82,83
> > <  *
> > <  * <p>
> > <  * This class is thread-safe.
> > <  * </p>
> > <  *
> > ---
> > >  * This class is a thread-safe Singleton.
> > >  *
> > 33a85,89
> > >  *
> > >  * @author Henri Yandell
> > >  * @author Juozas Baliuka
> > >  * @author David Graham
> > >  * @author Yoav Shapira
> > 38,39c94,113
> > <      * The default BeanProcessor instance to use if not supplied in
> > the
> > <      * constructor.
> > ---
> > >      * Set a bean's primitive properties to these defaults when SQL
> > NULL
> > >      * is returned.  These are the same as the defaults that ResultSet
> > get*
> > >      * methods return in the event of a NULL column.
> > >      */
> > >     private static final Map primitiveDefaults = new HashMap();
> > >
> > >     static {
> > >         primitiveDefaults.put(Integer.TYPE, new Integer(0));
> > >         primitiveDefaults.put(Short.TYPE, new Short((short) 0));
> > >         primitiveDefaults.put(Byte.TYPE, new Byte((byte) 0));
> > >         primitiveDefaults.put(Float.TYPE, new Float(0));
> > >         primitiveDefaults.put(Double.TYPE, new Double(0));
> > >         primitiveDefaults.put(Long.TYPE, new Long(0));
> > >         primitiveDefaults.put(Boolean.TYPE, Boolean.FALSE);
> > >         primitiveDefaults.put(Character.TYPE, new
> > Character('\u0000'));
> > >     }
> > >
> > >     /**
> > >      * Special array index that indicates there is no bean property
> > that
> > >      * matches a column from a ResultSet.
> > 41c115
> > <     private static final BeanProcessor defaultConvert = new
> > BeanProcessor();
> > ---
> > >     private static final int PROPERTY_NOT_FOUND = -1;
> > 52,53d125
> > <      * @deprecated Create instances with the constructors instead.
> > This will
> > <      * be removed after DbUtils 1.1.
> > 60,76c132
> > <      * Use this to process beans.
> > <      */
> > <     private BeanProcessor convert = null;
> > <
> > <     /**
> > <      * BasicRowProcessor constructor.  Bean processing defaults to a
> > <      * BeanProcessor instance.
> > <      */
> > <     public BasicRowProcessor() {
> > <         this(defaultConvert);
> > <     }
> > <
> > <     /**
> > <      * BasicRowProcessor constructor.
> > <      * @param convert The BeanProcessor to use when converting columns
> > to
> > <      * bean properties.
> > <      * @since DbUtils 1.1
> > ---
> > >      * Protected constructor for BasicRowProcessor subclasses only.
> > 78c134
> > <     public BasicRowProcessor(BeanProcessor convert) {
> > ---
> > >     protected BasicRowProcessor() {
> > 80d135
> > <         this.convert = convert;
> > 85c140
> > <      * This implementation copies column values into the array in the
> > same
> > ---
> > >      * This implementation copies column values into the array in the
> > same
> > 104,106c159,183
> > <      * Convert a <code>ResultSet</code> row into a JavaBean.  This
> > <      * implementation delegates to a BeanProcessor instance.
> > <      * @see
> > org.apache.commons.dbutils.BeanProcessor#toBean(java.sql.ResultSet,
> > java.lang.Class)
> > ---
> > >      * Convert a <code>ResultSet</code> row into a JavaBean.  This
> > >      * implementation uses reflection and <code>BeanInfo</code>
> > classes to
> > >      * match column names to bean property names.  Properties are
> > matched to
> > >      * columns based on several factors:
> > >      * <br/>
> > >      * <ol>
> >
> === message truncated ===>
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: commons-dev-help@jakarta.apache.org
> 
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail - 50x more storage than other providers!
> http://promotions.yahoo.com/new_mail
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message