JDBC is Java's standard interface to use relational databases. ODBC is another standard that does not have anything to do with Java.
Normally you want to use JDBC from a Java program, just because that's the standard, default way to use relational databases from Java. From the perspective of your program, JDBC is in principle independent of the specific brand and version of database that you use. The JDBC API uses a JDBC driver behind the scenes. That driver is specific to your particular brand and version of database: for example for Oracle you need an Oracle JDBC driver, for MySQL you need a MySQL JDBC driver, etc.
If you want to go through ODBC, then you can get a special JDBC driver that works through ODBC. But this is normally not what you want to do - it adds an unnecessary layer between your application and the database.
OLE DB is a Microsoft-specific API for accessing data in databases or from other data sources. It's not something you would normally want to use from a Java program, because it works on Windows only, and I don't even know if there's a way to use it directly from Java.