Olá
Tem sim como fazer, o problema que vc tem que criar uma referencia na base de dados
para que na hora da conexao ele possa referenciar, a partir dai vc pode mandar
as instruções sql.
Assim, a primeira vez que startar sua aplicação verificar se existe as configurações básicas
para o inicio, se estiver blz… não executar os create tables, se for a primeira vez vc
chama o construtor das tables…
A questão de portabilidade, tem várias opções: usar um framework (Hibernate, toplink e etc…) ou
utilizar o jdbc, mas tomando cuidado com as instruções, para que não seja especifica de um banco
de dados… ok!!!
Para exemplificar o que falei, de uma olhadinhas nos sistemas
openfire, jforum, ixi esqueci o outro… !! Vou ver se lembro!!