Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #37099

Re: Is this the way to work with try with resources

From Cecil Westerhof <Cecil@decebal.nl>
Newsgroups comp.lang.java.programmer
Subject Re: Is this the way to work with try with resources
Date 2017-08-09 07:10 +0200
Organization Decebal Computing
Message-ID <871solwclq.fsf@munus.decebal.nl> (permalink)
References <87poc6wb9n.fsf@munus.decebal.nl> <omcc5d$uk9$1@dont-email.me>

Show all headers | View raw


Martin Gregorie <martin@address-in-sig.invalid> writes:

> On Tue, 08 Aug 2017 13:26:44 +0200, Cecil Westerhof wrote:
>
>> I thought that I could rewrite it to:
>>     private static void statistics() {
>>         try (Statement stmt     = conn.createStatement();
>>              ResultSet rsTotal  = stmt.executeQuery(COUNT_TOTAL_PROV);
>>              ResultSet rsUnused = stmt.executeQuery(COUNT_UNUSED_PROV);
>>              ResultSet rsUsed   = stmt.executeQuery(COUNT_USED_PROV)) {
>>             int    count;
>>             String format;
>> 
>>             count  = rsTotal.getInt("no");
>>             format = String.format("There are %%,%dd %%6s proverbs.%%n",
>>             String.format("%,d", count).length());
>>             System.out.printf(format, count, "total");
>>             count  = rsUnused.getInt("no");
>>             if (count != 0) {
>>                 System.out.printf(format, count, "unused");
>>             }
>>             count  = rsUsed.getInt("no");
>>             System.out.printf(format, count, "used");
>>         } catch (SQLException e) {
>>             System.err.printf("Error in statistics\n");
>>             e.printStackTrace();
>>             fatalError("");
>>         }
>>     }
>> 
> In the absence of any other information I prefer the second organisation. 

I have done that now. I found the reason the above went wrong: a
Statement can only have one concurrent ResultSet. See my reply on my
own post.


>> But there is a problem with that. If I do that, all three result-sets
>> have the same query: the last one.
>> 
>> What is the reason for this? I am using SQLite3.
>>
> Thats difficult to answer knowing how ACID compliant SQLite3 is and

I need to read the JDBC specs. When creating a new ResultSet the old
one(s) get overwritten with the new one. (Not closed as the specs
say.)


> commitment unit: reuse of "no", presumably a column name, in all
> three

I probably should rename that to count. ;-)


> statements bothers me a bit and so does the fact that you've executed all 
> three queries before asking for any results.

That is the only way to have only one try with resources.


> As I result of both these 
> factors I think you've ended up retrieving the result from the LAST query 
> three times. 

Yes, I need to have a separate Statement for each ResultSet. That is
the way I implemented it now.

-- 
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-08 13:26 +0200
  Re: Is this the way to work with try with resources Martin Gregorie <martin@address-in-sig.invalid> - 2017-08-08 12:51 +0000
    Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 07:10 +0200
  Re: Is this the way to work with try with resources Patrick Roemer <sangamon@netcologne.de> - 2017-08-08 18:29 +0200
    Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 07:20 +0200
    Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 07:16 +0200
  Re: Is this the way to work with try with resources Patrick Roemer <sangamon@netcologne.de> - 2017-08-08 19:30 +0200
    Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 06:49 +0200
    Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 07:01 +0200
    Re: Is this the way to work with try with resources Patrick Roemer <sangamon@netcologne.de> - 2017-08-09 15:39 +0200
  Re: Is this the way to work with try with resources Arne Vajhøj <arne@vajhoej.dk> - 2017-08-08 21:25 -0400
    Re: Is this the way to work with try with resources Arne Vajhøj <arne@vajhoej.dk> - 2017-08-08 21:36 -0400
      Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 07:29 +0200
        Re: Is this the way to work with try with resources Arne Vajhøj <arne@vajhoej.dk> - 2017-08-09 20:53 -0400
          Re: Is this the way to work with try with resources Arne Vajhøj <arne@vajhoej.dk> - 2017-08-09 23:03 -0400
    Re: Is this the way to work with try with resources Arne Vajhøj <arne@vajhoej.dk> - 2017-08-08 21:48 -0400
    Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 07:24 +0200
  Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 06:26 +0200
    Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 08:30 +0200
    Re: Is this the way to work with try with resources Andreas Leitgeb <avl@logic.at> - 2017-08-09 09:40 +0000
      Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 12:56 +0200
        Re: Is this the way to work with try with resources Andreas Leitgeb <avl@logic.at> - 2017-08-09 16:51 +0000
          Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 19:37 +0200
            Re: Is this the way to work with try with resources Andreas Leitgeb <avl@logic.at> - 2017-08-09 19:51 +0000
              Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 22:20 +0200
                Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 23:17 +0200
          Re: Is this the way to work with try with resources Patrick Roemer <sangamon@netcologne.de> - 2017-08-09 22:08 +0200
        Re: Is this the way to work with try with resources Arne Vajhøj <arne@vajhoej.dk> - 2017-08-09 18:07 -0400
    Re: Is this the way to work with try with resources Arne Vajhøj <arne@vajhoej.dk> - 2017-08-09 18:05 -0400
  Re: Is this the way to work with try with resources Cecil Westerhof <Cecil@decebal.nl> - 2017-08-09 06:39 +0200

csiph-web