Implement SQLInterceptor (1.3.3)

This commit is contained in:
Tobias Eidelpes 2021-04-05 21:22:24 +02:00
parent 733bf50f91
commit d81bbb58a9

View File

@ -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;
}