I'd say the order of preference is roughly:
- Native database driver implemented in database package (e.g. RPostgresSQL)
- ODBC as implemented in odbc package
- JDBC as implemented in rjdbc package
But if you're connecting to a bunch of databases that all have ODBC drivers, you might prefer the increased consistency of using odbc for everything.