• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Matching a String with a certain record

 
chris le
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 12267
36
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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!!!

 
chris le
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 823
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 7023
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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...
 
Peter den Haan
author
Ranch Hand
Posts: 3252
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 15
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey, thanks a lot guys. I'll take a look at those suggestions.

Take care,

Chris
 
Julian Kennedy
Ranch Hand
Posts: 823
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic