You might want to consider keeping all of the database access code on the middle, or server tier. This way it will be self contained and should be easier to administer and maintain.
You could communicate with your server using RMI. I'm not sure I understand your question about RMI vs JDBC. Even if you use RMI you will still need JDBC to communicate with your DB, so it doesn't seem like an 'either/or' situation, but maybe I'm missing something.