Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

buenoweb

Erro de sintaxe

Recommended Posts

Estou com problema, espero que me orientem.

Estou fazendo um projeto que acessa o MySQL.

Nesse projeto há uma classe que testa a conexão e permite que o usuário altere o servidor, o usuário, a sena ou o nome do banco de dados.

Nesse jFrame tb há um botão cujo action cria o banco bem como suas tabelas.

Eu acho que a melhor alternativa seria ler o arquivo sql e executar (executeQuery()), o fazer isso dá um sqlexception com a descripton:

 

Erro de sintaxe na linha...

 

O estranho é que quando copio o conteúdo do arquivo e executo dentro do MySQL dá tudo certo.

Já tentei criar uma string dentro do código com todas as instruções e o erro persiste.

 

Alguém tem alguma ideia do motivo ou tem outra ideia para resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn;
conn = DriverManager.getConnection("jdbc:mysql://localhos/database", "user", "senha");
Path path = Paths.get("lib/database.sql");
byte[] retorno = Files.readAllBytes(path);
String s = new String(retorno);
PreparedStatement cmd;
cmd = (PreparedStatement) conn.prepareStatement(s);
cmd.executeUpdate();
cmd.close();
conn.close();
JOptionPane.showMessageDialog(null, "Banco de dados criado com sucesso.O programa deve ser fechado e reiniciado par as alterações terem efeito.");
System.exit(0);
} catch (ClassNotFoundException ex) {
lbmsgconn.setText(ex.getMessage());
} catch (SQLException ex) {
lbmsgconn.setText(ex.getMessage());
} catch(IOException e) {
lbmsgconn.setText("Erro ao salvar");
}

Conecto sem problemas, o problema é a string sql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ideal seria apresentar a pilha de erros. Há uma boa chance de ser problema de encoding. Apresenta o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faço isso?

ex.printStackTrace();

Faça isso pra cada catch e depois publique a saída de erro do console no seu post.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, mas é void.

Será que poderia me orientar mais detalhadamente?

 

Como assim, void?!?!?!?

Um exemplo pra imprimir a pilha de erros.

try {
  // código aqui
} catch (Exceptio ex) {
  ex.printStackTrace();
  // código pra tratamento de exceção aqui
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.