import org.postgresql.core.BaseStatement;
import org.postgresql.core.QueryExecutor;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.util.Properties;
import java.util.UUID;

final class PostgresTest {
    public static void main(String args[]) throws SQLException {
        System.setProperty("org.postgresql.forceBinary","true");
        String url = "jdbc:postgresql://127.0.0.1:5432/test";
        Properties props = new Properties();
        props.setProperty("user","test");
        props.setProperty("password","test");
        props.setProperty("prepareThreshold","0");
        Connection conn = DriverManager.getConnection(url, props);
        final PreparedStatement statement = conn.prepareStatement("select u from t1 where 1=1 OR u=?");

        for(int i=0; i<10; i++) {
                long startTime = System.currentTimeMillis();
                statement.setObject(1, UUID.fromString("b4efb6a8-1b69-4478-8373-9dd4191ace58"), Types.OTHER);
                statement.execute();
                final ResultSet resultSet = statement.getResultSet();
                while(resultSet.next()){
                    resultSet.getObject(1);
                }
                long stopTime = System.currentTimeMillis();
                long elapsedTime = stopTime - startTime;

                resultSet.close();
                System.out.println(i+" => " + elapsedTime + " ms");
        }
    }
}
