Método ou script p/ criação de banco de dados

10 respostas Resolvido
bancoprogramaçãomysqljava
Freitax

Olá pessoal, peace?
Preciso de um script ou método em java para criação de um banco de dados para a minha aplicação no computador de um cliente! Ao instalar minha aplicação, ele já tem a opção de instalar a JRE e também o mysql. Após o processo de instalação da aplicação e dos programas necessários para rodar o software, eu preciso que ele também execute um .exe para a criação das tabelas no mysql. Se vocês puderem me fornecer o script, eu posso incluir na inicialização da aplicação mas se alguém tiver um método java, eu posso criar um .exe e colocar como um dos programas após o JRE e MySQL.
Se alguém tiver um outro meio para fazer essa operação, ficarei grato!
Att,
Freitax

10 Respostas

igorventurelli
Solucao aceita

Você instala o MySQL e o deixa rodando?
Se sim, você pode abrir uma conexão com ele e rodar o comando de criação de base dados.
Se forem muitos comandos (criar varias tabelas, constraints e etc), você pode externalizar isso num arquivo dentro do seu projeto e chamar esse arquivo quando estiver com a conexão aberta.

Freitax

“Você instala o MySQL e o deixa rodando?” R: O MySQL é apenas para que eu possa criar o banco de dados na máquina do meu cliente.

Então, o banco é relativamente pequeno. Contém apenas 5 tabelas, porém possuí vários campos. Foreign keys, constraints e etc.
Eu gostaria de criar um arquivo dentro ou fora do projeto apenas para criar as tabelas e os campos no mysql. Eu gostaria de um modelo ou até mesmo uma sugestão mais direta.

igorventurelli

Entendi!
Você pode criar um arquivo de propriedades no seu projeto e acessá-lo lá dentro mesmo (dentro do projeto).
Veja se isso ajuda.

Freitax

Procurei algo que me auxilia-se mas infelizmente não obtive resultados satisfatórios. Preciso realmente de um método mais concreto. Estou buscando em outros fóruns também. Estou pensando em criar um executável .jar com “String sql = “CREATE DATABASE BANCO;”” após testar a conexão com o banco.

Freitax

Consegui criar o banco de dados pelo JAVA! :grinning:
Criei um programa para criar o banco, agora preciso apenas criar as tabelas dentro do banco. Meu código ficou assim:

public class ConexaoFinal {

    public void conectar() {

    }

    public static void main(String arg[]) throws Exception {

        try {

            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/?verifyServerCertificate=false&useSSL=false", "root", "metallica");

            JOptionPane.showMessageDialog(null, "Instalação finalizada com sucesso!", "VALIDAÇÃO DO BANCO", 2);
                System.out.println("CONEXÃO OK!");
            try {

                Statement ps = con.createStatement();
                System.out.println("STATEMENT OK!");

                try {
                    ps.executeUpdate("CREATE DATABASE teste;");
                    System.out.println("CRIAÇÃO OK!");
                } catch (Exception e) {

                    e.printStackTrace();

                }

            } catch (Exception e) {
                System.out.println("PREPARED ERROR!");
                e.printStackTrace();
            }

        } catch (Exception e) {

            System.out.println("ERROR CONEXÃO!");
            e.printStackTrace();

        }

    }
}
igorventurelli

Tipo isso? hahaha

Freitax

Hahaha! Obrigado, mas não tinha interpretado muito bem suas palavras.
Mas agora vi que você me guiou pelo caminho certo!

igorventurelli

Hehe legal!
Se achar justo/correto, poderia marcar minha resposta como solução, por favor?
Valeu!

Eldius

Só complementando a resposta DO @Freitax , o MySQL permite que você apenas crie a database ou as tabelas caso ainda não existam, bastando acrescentar um IF NOT EXISTS, como no exemplo:

ps.executeUpdate("CREATE DATABASE IF NOT EXISTS teste;");
Freitax

Isso mesmo Eldius, mas como esse banco sera criado pela aplicação, se caso tentar criar de novo e ele já estiver criado, nada acontece.

Criado 11 de janeiro de 2017
Ultima resposta 20 de jan. de 2017
Respostas 10
Participantes 3