| Author |
Matching a String with a certain record
|
chris le
Greenhorn
Joined: Jul 30, 2004
Posts: 15
|
|
Hey guys, I'm a ColdFusion developer and have just started into java. In ColdFusion if you want to see if a string matched the name of a column value (from a database) you would do this: How would I check for a value like this in Java? Here's what I got: Any ideas? Thanks guys and take care, Chris
|
 |
fred rosenberger
lowercase baba
Bartender
Joined: Oct 02, 2003
Posts: 9955
|
|
common question. simple answer: don't use "==", it's checking for something else entirely than what you think it is. use the ".equals()" method... if you search around on this site, you're bound to find a more tech. answer. or, wait a while and somebody will post it here (i may myself later when i have more time...) good luck!!!
|
Never ascribe to malice that which can be adequately explained by stupidity.
|
 |
chris le
Greenhorn
Joined: Jul 30, 2004
Posts: 15
|
|
Thanks for the help! But here's another question along the same lines. Why does it have to be in a loop to work. I have tried this: It doesn't match it because the cursor is still on the last record "John". Why is this happening even after I user the first() method? I even tried the absolute method. Any ideas? Thanks!
|
 |
Julian Kennedy
Ranch Hand
Joined: Aug 02, 2004
Posts: 823
|
|
Hi Chris, The JDBC code you're using is at a lower level than ColdFusion tags. It gives you a lot more control over how you interact with the database. Consequently it requires more code to do the simple things. ColdFusion is akin to the tags provided by JSTL or Struts. These technologies do the simpler things very succinctly, further hiding the complexity behind the scenes from the developer. In simple terms a loop is required as your ResultSet returns more than one row. Your second question is more difficult. Your JDBC driver has given you a ResultSet of ResultSet.TYPE_FORWARD_ONLY, which suggests only JDBC 1.0 support. JDBC 2.0 introduced scrollable ResultSets which support the first() and last() methods, etc. Calling rs.first() on a forward-only ResultSet has no effect, hence the ResultSet still points at the last record found by rs.next(). Hope that helps. As you appear to crave a full understanding of these concepts I suggest you have a good browse through the API documentation for the java.sql package on Sun's website and also study the JDBC 2.0 tutorial there. Jules
|
 |
Dirk Schreckmann
Sheriff
Joined: Dec 10, 2001
Posts: 7023
|
|
Note that the API documentation Julian mentioned is available at http://java.sun.com/j2se/1.4.2/docs/api/ Sun's JDBC tutorial is available at http://java.sun.com/docs/books/tutorial/jdbc/index.html Moving this to the JDBC forum...
|
[How To Ask Good Questions] [JavaRanch FAQ Wiki] [JavaRanch Radio]
|
 |
Peter den Haan
author
Ranch Hand
Joined: Apr 20, 2000
Posts: 3252
|
|
It's not exactly best practice, but you might get a lot of mileage out of exploring the SQL tags in the JSTL (JSP Standard Tag Library). - Peter
|
 |
chris le
Greenhorn
Joined: Jul 30, 2004
Posts: 15
|
|
Hey, thanks a lot guys. I'll take a look at those suggestions. Take care, Chris
|
 |
Julian Kennedy
Ranch Hand
Joined: Aug 02, 2004
Posts: 823
|
|
Chris, If you want a ResultSet that isn't just FORWARD_ONLY, try the version of Connection.prepareStatement that takes the SQL string plus two int parameters for ResultSet type and concurrency. You'll need a JDBC 2.0 dirver for this to work. Jules
|
 |
 |
|
|
subject: Matching a String with a certain record
|
|
|