I think it is good to have different validators. And JDBC4 isValid() can be one of them.
However I advice against using this as the only/default method. For Oracle drivers for example the isValid() method does internally use a simple select statement (and it does actually NOT use a prepared statement). If a timeout is specified it is even worse as it kicks of a background thread (on each isValid(int) invocation). The Oracle implementation is therefore so bad (as of today), it is much better to use the sql method (with PS).
BTW: there might be some possibility for optimizations if you have a reset statement (like rollback() and setAutocommit()). If those are sent to the DB they can replace the valid check in some conditions.