olá a todos quero uma ajudinha em meu código java.É o seguinte tenho um projeto e uso o postgresql. até aqui tudo bem. Mas, quando eu coloco meu método de criar tabela ele até cria só que se eu abrir novamente o form, como já tem ela(tabela) criada ele da uma mensagem dizendo que já existe tal tabela e eu quero tratar isso, não sei se com um if resolve e não sei onde colocar para poder tratar isso ou se tem um comando específico.
Tratar erro de duplicidade de banco no postgre
6 Respostas
Hibernate ?
tem algo mais simples? rsrs sei lá quando chamar meu método de criar tabela ele ir no banco ver se tem alguma tabela com aquele nome e enviar tabela ja existente
Posta seu código
O ideal é você rodar seu Sql direto no banco e depois fazer suas operações pelo java
CONEXÃO COM O BANCO:
package ConectarBanco;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class ConectarBanco {
String caminho = "jdbc:postgresql://localhost:5432/postgres";
String usuario = "postgres";
String senha = "postgres";
String driver = "org.postgresql.Driver";
public Statement stm;
public ResultSet rs;
public Connection con;
public void conectar(){
try {
con = DriverManager.getConnection(caminho, usuario, senha);
// JOptionPane.showMessageDialog(null, "conectado ao banco");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao conectar\n" + ex.getMessage());
}
}
public void executarSql(String sql){
try {
stm = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stm.executeQuery(sql);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Não foi possível executar String SQL\n" + ex.getMessage());
}
}
public void desconectarBanco(){
try {
con.close();
//JOptionPane.showMessageDialog(null, "Desconectado com sucesso!");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao desconectar\n" + ex.getMessage());
}
}
}
MÉTODO PARA CRIAR UMA TABELA
package Tabelas;
import ConectarBanco.ConectarBanco;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class Tabelas {
ConectarBanco conectar = new ConectarBanco();
String conseguir;
public void criarTabelaCadastro(){
try {
conectar.conectar();
conectar.stm = conectar.con.createStatement();
String sql = "CREATE TABLE cadastro(cod serial NOT NULL,nome character varying(50) NOT NULL,"
+ "cpf character varying(20) NOT NULL,rg character varying(20) NOT NULL,estado_civil character varying(10) NOT NULL,"
+ "CONSTRAINT cod PRIMARY KEY (cod))";
conectar.stm.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "Tabela cadastro criada com sucesso");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Não foi possível criar tabela\n" + ex.getMessage());
}
}
}
EVENTO AO INICIAR O FORM:
public TelaCadastroMedico() {
initComponents();
CriarTabelas tabelas = new CriarTabelas();
tabelas.criarTabelaCadastro();
}
nessa parte ta beleza so que eu quero tratar um erro que quando a tabela ja existe tipo assim executei o form criou a tabela ai quando eu fechar e executar novamente não de a mensagem “NÃO FOI POSSÍVEL CRIAR A TABELA TAL POIS ELA JÁ EXISTE” é isso que ta pegando e sim lembrando que to usando o netbeans
Opa! Então, no seu sql de criação da tabela, tente colocar a cláusula not exists usando “CREATE TABLE IF NOT EXISTS”, e não apenas “CREATE TABLE”.
não é que deu certo Jailson_da_Silveira muito obrigado viu me ajudou muito