Path: csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Cecil Westerhof Newsgroups: comp.lang.java.programmer Subject: Logging database statement duration in a DRY way Date: Fri, 19 Aug 2016 14:32:45 +0200 Organization: Decebal Computing Lines: 24 Message-ID: <87wpjdhrbm.fsf@Equus.decebal.nl> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="12baf5125b19322b899c79c2e3878015"; logging-data="23859"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18958PTM2IzqJF+8sp1jfCta8itmPfA/U0=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) X-Homepage: http://www.decebal.nl/ Cancel-Lock: sha1:GQNwg8v9I5ZxLdG02HgrgMfs5vY= sha1:6VwPJJMQvAnNYPfSF5EjcCLcraU= Xref: csiph.com comp.lang.java.programmer:35408 I like to log the time it takes for certain database actions. At the moment I do this like this: startTime = System.nanoTime(); ps = conn.prepareStatement(insertLine); ps.setString(1, className); ps.setLong( 2, pid); ps.setLong( 3, free); ps.setLong( 4, rt.maxMemory() / divideValue); ps.setLong( 5, total); ps.executeUpdate(); ps.close(); stopTime = System.nanoTime(); logMessage(String.format("preparedStatement saveMemoryLineNoGC took %f milliseconds", (stopTime - startTime) * 1E-6)); This works, but I need to copy the first and last two statements and edit the last one, so I was wondering if this could be done more DRY (Do not Repeat Yourself). In C(++) you would use a macro, but as far as I know this is not possible with Java. -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof