Re: enums, using methods as initializers
Mikhail Teterin wrote:
Stefan Ram wrote:
Mikhail Teterin <usenet+mill@aldan.algebra.com> writes:
What I'm looking for is a way to go through all fields and
extract them from the row in a loop.
{ final java.sql.ResultSetMetaData desc = resultSet.getMetaData();
final int cols = desc.getColumnCount();
for( int i = 1; i <= cols; ++i )
java.lang.System.out.println
( desc.getColumnName( i )+ " " + resultSet.getString( i )); }
I have not tested the above code, so it still might contain bugs.
You also can get the type from the meta data. See
http://download.java.net/jdk7/docs/api/java/sql/ResultSetMetaData.html
Thank you, that's pretty cool. But that goes through the columns of the
ResultSet. I'm trying to go through the fields of my own Class, however.
I know, I can store the data in my own HashTable, but I would rather access
the fields as entry.foo and entry.meow instead of entry.getFoo() and
entry.getMeow().
Thanks!
-mi
If you REALLY REALLY want to go through the fields of a class (Bad
Idea), you can use reflection.
Reflection is difficult to get right, so I suggest delegating that
responsibility to a library that is maintained by a large community.
Hibernate does exactly what you want. *Exactly* what you want. Let me
repeat. Hibernate does *exactly* what you're trying to do.
If you insist on going the route of DIY, read my warning about reflection:
<http://virtualinfinity.net/wordpress/program-design/2007/01/11/the-dangers-of-reflection-or-put-down-that-mirror/>
If after reading that, you feel justified in using reflection, the sun
tutorial on reflection is a good starting place:
<http://java.sun.com/docs/books/tutorial/reflect/index.html>
Just know that I've gone down the road you're trying to. It isn't a
pretty journey, and the destination isn't all that nice either.
--
Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>