JDBC returning empty result set
I figured it out....stupid Oracle didn't like the number of concurrent connections I had (all two of them, one for console, one for java). Unfortunately, the server is not under my control so I will just have to deal with it. You would think that Oracle would provide a better response. Instead it just returned empty result sets.
Thanks for the responses
edit Since this was asked/answered there have been a number of people pointed out that the underlying cause is more likely related to the commit/transaction settings in use. Please be sure to see other answers for additional hints and possible solutions.
I see a few pitfalls in your code, there are a few places where things can go wrong:
First, use of regular statements. Use prepared statements so you won't have problems with SQL injection.
Instead of
statement = connection.createStatement();
use
statement = connection.prepareStatement(String sql);
With this, your query becomes
"select distinct group_name From group_members where username= ?"
and you set username with
statement.setString(1, username);
Next, I don't like use of your myDB
class. What if results is null
? You're not doing any error checking for that in your public List<InterestGroup> getGroups()
method.
public void sendQuery(String query)
seems to me like it shouldn't be void
, but it should return a ResultSet
. Also, search on the net for proper ways to do JDBC exception handling.
Also, this line:
new InterestGroup(results.getString("group_name"), myDB)
Why do you have myDB
as a parameter?
I'd suggest adding more System.out.println
statements in your code so you can see where things can go wrong.