Re: [OJB-developers] Detecting and mapping null Integer values
Brought to you by:
thma
From: Jakob B. <jbr...@ho...> - 2002-02-13 19:43:09
|
hi thomas, what about using wasNull of ResultSet ? /** * Reports whether * the last column read had a value of SQL <code>NULL</code>. * Note that you must first call one of the <code>getXXX</code> methods * on a column to try to read its value and then call * the method <code>wasNull</code> to see if the value read was * SQL <code>NULL</code>. * * @return <code>true</code> if the last column value read was SQL * <code>NULL</code> and <code>false</code> otherwise * @exception SQLException if a database access error occurs */ boolean wasNull() throws SQLException; hth jakob ----- Original Message ----- From: "Thomas Mahler" <tho...@ho...> To: "Darren Syzling" <Dar...@cw...> Cc: <obj...@li...> Sent: Wednesday, February 13, 2002 8:09 PM Subject: Re: [OJB-developers] Detecting and mapping null Integer values > Hi Darren, > > Darren Syzling wrote: > > > How can I detect null values for Integer, Long, Double etc Java class attributes > > ? Let's say we're mapping an object which has the following attributes: > > > > class Test > > { > > Integer id; > > String name; > > Integer sales; > > } > > > > > > Let's assume that both name and sales can be null. When retrieving this object > > from the database using the PersistenceBroker the String reference will be null > > but the sales reference will in fact refer to an Integer object with a zero > > value. If zero is within the valid range how can we detect that the value is > > actually null. > > > > This appears to boil down to: JdbcAccess.getObjectFromColumn. The code to > > convert a string looks like: > > > > case Types.VARCHAR: > > result = rs.getString(columnId); > > break; > > > > If the string value is null getString will return a null reference. But for > > Integer (and other classes) the following is used: > > > > case Types.INTEGER: > > result = new Integer(rs.getInt(columnId)); > > break; > > > > > > I get your point. But: how should the above code look like to handle > your problem correctly? I have no idea. > If you (or somebody else) tell me how this section should look like I > will change it! > > > java.sql.ResultSet does not tell you that a column is NULL. It just > returns a 0. Of course this is wrong. But SUN specified it this way. > Or am I missing something? From the java.sql.ResultSet Source: > > /** > * Gets the value of the designated column in the current row > * of this <code>ResultSet</code> object as > * an <code>int</code> in the Java programming language. > * > * @param columnIndex the first column is 1, the second is 2, ... > * @return the column value; if the value is SQL <code>NULL</code>, > * the value returned is <code>0</code> > * @exception SQLException if a database access error occurs > */ > int getInt(int columnIndex) throws SQLException; > > > > getInt will return 0 for null and the an integer will be created with a zero > > value. > > > > The Conversion Strategy stuff appears too late in the day to make the > > conversion. > > > You are right, things are already on the wrong track at this point.... > > How is everybody else handling this or have I missed something ? > > > cu, > > Thomas > > > > > > > > Thanks > > Darren > > > > > > > > **************************************************************************** ************************************************************************** > > This e-mail has been prepared using information believed by the author to be > > reliable and accurate, but Thales Information Systems Finance makes no > > warranty as to accuracy or completeness. In particular Thales Information > > Systems Finance does not accept responsibility for changes made to this > > e-mail after it was sent. Any opinions expressed in this document are those of > > the author and do not necessarily reflect the opinions of the company or its > > affiliates. They may be subject to change without notice. > > This e-mail, its content and any files transmitted with it are intended > > solely for the addressee(s) and may be legally privileged and/or > > confidential. Access by any other party is unauthorised without the express > > written permission of the sender. If you have received this e-mail in error you > > may not copy or use the contents, attachments or information in any way. > > Please destroy it and contact the sender via the Thales Information Systems > > Finance switchboard in London at +44 (0) 20 7650 0100 or via e-mail return. > > This message and any attachments have been scanned > > for viruses prior to leaving the originators network. The originator does not > > guarantee the security of this message and will not be responsible for any > > damages arising from any alteration of this message by a third party or as a > > result of any virus being passed on. > > **************************************************************************** *************************************************************************** > > > > > > > > _______________________________________________ > > Objectbridge-developers mailing list > > Obj...@li... > > https://lists.sourceforge.net/lists/listinfo/objectbridge-developers > > > > > > > > > > > > > _______________________________________________ > Objectbridge-developers mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-developers > |