Este método está correto:?
public void inserir(Dados dados){
try{
Connection x ;
x = DriverManager.getConnection("jdbc:mysql://localhost:3306/empresa");
String inserir = ("INSERT INTO (codigo, nome, endereco, cpf)(?, ?, ?, ?)") ;
PreparedStatement s = x.prepareStatement(inserir) ;
s.setLong(1, dados.getCodigo()) ;
s.setString(2, dados.getNome()) ;
s.setString(3, dados.getEndereco()) ;
s.setLong(4, dados.getCpf());
s.execute() ;
s.close() ;
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, "Não foi possível salvar dados no banco de dados");
}
}
Matheus,
Isso não é Hibernate, é JDBC (Java Database Connectivity).
JDBC é a especificação que define uma série de questões para padronizar o acesso a bancos de dados. Cada empresa que possui um DB escreve seu Driver JDBC, para que ele possa ser utilizado em aplicações na JVM. Por exemplo, aqui você vê a página do JDBC do PostgreSQL: https://jdbc.postgresql.org/
Quando você utiliza JDBC, você está lidando diretamente com o banco de dados mesmo, lendo e escrevendo em tabelas. Tudo que você poderia fazer no DB, você pode fazer pelo Java, passando os comandos através de Strings.
O Hibernate (como te expliquei antes) é uma ferramenta de ORM (Object-Relational Mapping). Você configura o Hibernate para persistir as tuas ENTIDADES, e idealmente para de pensar em DB e tabelas, mas só nos objetos.
Dá uma olhada aqui (bem curtinho): https://pt.wikipedia.org/wiki/Mapeamento_objeto-relacional
O Hibernate utiliza a API de JDBC para fazer o acesso ao banco de dados. É com ele que você deve se comunicar, e não diretamente com o DB.
E sobre o método estar correto, infelizmente eu não sei te responder só olhando. Teria que testar e ver se acontece alguma exception. O que está acontecendo?
Uma coisa que eu diria que talvez está errado é esse SQL:
INSERT INTO (codigo, nome, endereco, cpf)(?, ?, ?, ?)
Falta o nome da tabela e a palavra chave VALUES
. Assim:
INSERT INTO tabela(coluna1, coluna2, coluna3) VALUES (?, ?, ?)