No mate it is not always ODBC. We have vendor specific JDBC drivers as well, and it is better to use those instead. You talked about oracle specifically thats why i am telling you the two drivers of oracle, that i know.
class12.zip, OCI driver
We can use either, whether our database is on same machine or on some other machine. We use OCI driver usually when using TNS names of ORACLE. I would like to give some parameters that are used while connecting DB.