Re: JDBC - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: JDBC
Date
Msg-id CADK3HH+E2-R5vZzPrheEVMRymDxpmEzDhYNft_rvBdT3jXWnEg@mail.gmail.com
Whole thread Raw
In response to Re: JDBC  (Chuck Davis <cjgunzel@gmail.com>)
Responses Re: JDBC
List pgsql-jdbc

On 10 June 2018 at 19:09, Chuck Davis <cjgunzel@gmail.com> wrote:
If I try to return a ResultSet the class will not compile with the
message that boolean cannot be converted to a ResultSet.  And this is
in synch with the documentation that states the "exists" subquery will
return a boolean -- not a ResultSet.

There are a number of sites that indicate the statement is the way to
find out if a table exists.  Are the sites for an older version of PG?
 I'm running on 10.

Thanks.

On Sun, Jun 10, 2018 at 1:44 PM, David G. Johnston
<david.g.johnston@gmail.com> wrote:
> On Sunday, June 10, 2018, Chuck Davis <cjgunzel@gmail.com> wrote:
>>
>>
>>         try {
>>             result = stat.execute("select exists (select 1 from
>> information_schema.tables where table_name = 'entities')");
>>             System.out.println("the checkEntity returned a result of "
>> + result);
>>         } catch (SQLException ex) {
>>
>> Logger.getLogger(ClientConstants.class.getName()).log(Level.SEVERE,
>> null, ex);
>>             result = false;
>>             return result;
>>         }
>
>
> Your query is putting "false" into cell (0,0) of a ResultSet.  You are
> failing to even look at the resultset to see if it holds a true or false.
>
> The query should never fail since you aren't using the table name directly
> but are checking for it as a value in another table that always exists. The
> inner query returns zero records when the table doesn't exist and the EXISTS
> construct converts that to false.
>
> David J.
>



idiomatic java suggests that you need to do 

resultset rs = statement.query(your select statement)

if rs.next then
result = rs.getInt(1)

close result set and statement

return result == 1

pgsql-jdbc by date:

Previous
From: Chuck Davis
Date:
Subject: Re: JDBC
Next
From: Chuck Davis
Date:
Subject: Re: JDBC