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

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

1 curtida

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.

1 curtida

“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.

1 curtida

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

1 curtida

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.

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();

        }

    }
}
2 curtidas

Tipo isso? hahaha

1 curtida

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

1 curtida

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

1 curtida

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;");
1 curtida

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.