I have a strange problem with my Servlet app running in Tomcat 3.2.1 on
Linux.
The method posted below takes a String and uses it in conjunction with a
PreparedStatement to create a query. I've added debugging code to the method
to print output to the screen to help me but I can't figure it out.
Basically the query is returning nothing.
When I run the query from the SQL command line (PostgreSQL 7.1) it returns
one row.
When I substitute the actual String in the query instead of using setString,
it doesn't work. I'm kind of baffled...
The counter I have set for debugging returns 0 and the output of the String
that's brought into the method matches the one I use in the query that runs
properly on the command line. Any help would be appreciated.
I do all sorts of DB access in other parts of my app and it works just fine.
Hunter
Here is the method:
private boolean artistExists (HttpServletRequest request,
HttpServletResponse response, String artistName) throws IOException,
ServletException {
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
boolean artistExists = false;
//DEBUG
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Input Artist Name: " + artistName + "<BR>");
int counter = 0;
//END DEBUG
try {
con = myBroker.getConnection();
pst = con.prepareStatement("SELECT * FROM artist_info WHERE
upper(name) = upper(?)");
pst.clearParameters();
pst.setString(1, artistName);
rs = pst.executeQuery();
while (rs.next()) {
out.println("Is the inputted name: " + artistName + " equal
to: " + rs.getString("name") + "?<BR>"); //DEBUG
counter++; //DEBUG
if (artistName.equalsIgnoreCase(rs.getString("name"))) {
artistExists = true;
}
}
Integer theInteger = new Integer(counter); //DEBUG
String theCounter = theInteger.toString(); //DEBUG
out.println("Counter: " + theCounter); //DEBUG
myBroker.freeConnection(con);
}
catch (Exception e) {
request.setAttribute("javax.servlet.jsp.jspException", e);
RequestDispatcher rd =
getServletContext().getRequestDispatcher("/error.jsp");
rd.forward(request, response);
}
//return true; //DEBUG
return artistExists;
}