You should use the JDBC/ODBC bridge when multiple connections are not required. Multiple instances of your application can create and close connections using the bridge, but this is far less efficient than using a connection pool.
The third party database drivers (e.g. Oracle, MySQL) adhere to the JDBC spec provided by Sun, which enables them to abide by a single contract across multi-vendor application servers (e.g. JBoss, Websphere). If your J2SE application enabled pooling as per the JDBC spec, it too could use Oracle's thin driver.
If your (web) application is hosted on a application server, you can retreive the datasource using the JNDI initial context (thereby leaving the pooling work up to the app server).