Tenho um trabalho de curso no qual tenho q criar um sistema de biblioteca.Gostaria de criar um metodo na classe conexão que criasse a conexao com o mysql e ja criasse o banco por dentro da aplicação, sem eu ter que abrir o workbench para restaurar o banco do zero.
Já evoluindo, existe algum metodo que rode um script sql? assim eu rodaria um metodo que faz o backup do banco (portanto leva os dados juntos) e rodaria ele toda vez que o programa iniciasse (trazendo os dados da ultima utilização)
Você pode especificar a conexão com o banco de dados sem informar o mesmo. Em qualquer tutorial você tem
Connection con = DriverManager.getConnection("jdbc:mysql://[HOST]:3306/[BANCO]", ...
Onde HOST é o endereço onde o banco está (localhost para desenvolvimento) e BANCO é o nome do banco.
Se você fizer
Connection con = DriverManager.getConnection("jdbc:mysql://[HOST]:3306", ...
Vai ter a conexão com o SGBD e precisará executar a query
PreparedStatement bd = con.prepareStatement("USE [BANCO]");
bd.execute();
Isso tem o mesmo efeito de executar o script
USE [BANCO];
No workbench, ou seja, você define em qual banco (schema) está executando as próximas instruções (sejam elas DDL - create, drop, truncate - ou DML - select, insert, etc).
Se o banco ainda não existe, você pode executar a instrução
PreparedStatement createDB = con.prepareStatement("CREATE DATABASE MEU_BANCO";
createDB.execute();
Esta instrução deve criar um schema com nome MEU_BANCO.
Aí é só executar o use e sair rodando os demais scripts.
Beleza mano! Valeu. Isso que precisava mesmo. Mas agora so mexo novamente na sexta … o meu workbench aq é o 8 e usa um plugin novo de conexao, caching sha2 alguma coisa e o netbeans n reconhece… ai quando tiver tempo formato tudo e instalo dnv ja que ja vou precisar formatar.