From d81bbb58a9e8098a0324d3d0b121ea535fb0eb1f Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Mon, 5 Apr 2021 21:22:24 +0200 Subject: [PATCH] Implement SQLInterceptor (1.3.3) --- .../ass1/jpa/interceptor/SQLInterceptor.java | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/interceptor/SQLInterceptor.java b/ass1-jpa/src/main/java/dst/ass1/jpa/interceptor/SQLInterceptor.java index 4d21aa4..812adaa 100644 --- a/ass1-jpa/src/main/java/dst/ass1/jpa/interceptor/SQLInterceptor.java +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/interceptor/SQLInterceptor.java @@ -2,17 +2,26 @@ package dst.ass1.jpa.interceptor; import org.hibernate.EmptyInterceptor; +import java.util.Locale; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; + +import static dst.ass1.jpa.util.Constants.T_LOCATION; +import static dst.ass1.jpa.util.Constants.T_TRIP; + public class SQLInterceptor extends EmptyInterceptor { private static final long serialVersionUID = -3082243834965597947L; + private static final AtomicInteger selectCount = new AtomicInteger(0); + private static boolean print = false; + public static void resetCounter() { - // TODO + selectCount.set(0); } public static int getSelectCount() { - // TODO - return -1; + return selectCount.get(); } /** @@ -21,12 +30,22 @@ public class SQLInterceptor extends EmptyInterceptor { * @param verbose whether or not to be verbose */ public static void setVerbose(boolean verbose) { - // TODO + print = verbose; } @Override public String onPrepareStatement(String sql) { - // TODO + if (print) + System.out.println(sql); + + if (sql.toLowerCase(Locale.ROOT).contains("select") && + ( + sql.toLowerCase(Locale.ROOT).contains("from " + T_LOCATION.toLowerCase(Locale.ROOT)) || + sql.toLowerCase(Locale.ROOT).contains("from " + T_TRIP.toLowerCase(Locale.ROOT)) + )) { + selectCount.incrementAndGet(); + } + return sql; }