Seguinte pessoal. Criei um sisteminha básico apenas para treinar esta conexão do java com o postgres. A conexão já está ok mas estou com problemas na hora de inserir os dados. ? O programinha irá inserir quatro colunas em um banco chamado "sistema".
O que eu tenho:
Para a inserção eu estou usando 3 classes.
A classe "AlterarSistema que é a view.
A classe Sistema que é os Beans com todos seus gets e sets, e a classe SistemaDAO que seria responsável por fazer a conexão e todas as consultas sqls. Mais pra frente pretendo implementar uma classe para controlar as ações mas por hora quero testar assim mesmo.
O que eu estou fazendo:
No Action Listener que controla a ação do botão cadastrar, eu pego os textos digitados nos Texts através do getText() e salvo em uma String e já seto nos Beans. Chamo a classe SistemaDAO que teoricamente teria que dar um "get" nos Beans e passar pro BAnco de dados. Galera como sou aprendiz em java não sei a lógica está legal , se alguém tiver sugestões de estruturas melhores eu aceito.
O problema: quando eu chamo o construtor SistemaDao da um erro de exceção, como o eclipse me da algumas sugestões pra declarar no actionListener eu tento mas mesmo assim não funciona. Tentei não chamar o SistemaDAO no ActionListener e sim executar primeiro o ActionListener para carregar os Benas e depois o SistemaDAO para finalizar o processo, apenas para testar mas não deu muito certo aí o erro acontece no local onde chamo os Beans.
O código relacionado a esta parte segue abaixo, se alguém puder me ajudar fico grato...
A ação:
[/code]
[color=blue]public void actionPerformed(ActionEvent e) throws Exception, SQLException {
if(e.getSource()== btCadastrar);
codigo = textCod.getText();
nome = textNome.getText();
versao = textVersao.getText();
finalidade = textFinalidade.getText();
sistemaBean.setCod(codigo);
sistemaBean.setNome(nome);
sistemaBean.setVersao(versao);
sistemaBean.setFinalidade(finalidade);
new SistemaDAO();
}
[/color]
Os Beans:
[code]
package model;
public class Sistema {
private String cod;
private String nome;
private String versao;
private String finalidade;
public Sistema(){
}
public String getCod(){
return cod;
}
public void setCod(String s){
this.cod = s;
}
public String getNome(){
return nome;
}
public void setNome(String s){
this.nome = s;
}
public String getVersao(){
return versao;
}
public void setVersao(String s){
this.versao = s;
}
public String getFinalidade(){
return finalidade;
}
public void setFinalidade(String s){
this.finalidade = s;
}
}
A conexão:
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import model.Sistema;
import model.Usuario;
public class SistemaDAO {
private String url ="jdbc:postgresql://localhost:5432/CADASTRO";
private Connection con;
private PreparedStatement stm;
private Sistema sistemaBean;
public static final String INSERE_SISTEMA = "insert into sistema('cod_bd','nome_bd','versao_bd','finalidade_bd')values(?,?,?,?)";
public static final String PESQUISA_SISTEMA = "Select * from sistema";
public SistemaDAO() throws ClassNotFoundException, SQLException{
try{
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection(url, "postgres","root");
System.out.println("Conectado! ");
stm = con.prepareStatement(INSERE_SISTEMA);
stm.setString(1,sistemaBean.getCod());
stm.setString(2,sistemaBean.getNome());
stm.setString(3,sistemaBean.getVersao());
stm.setString(4,sistemaBean.getFinalidade());
ResultSet insert = stm.executeQuery();
//Teste
ResultSet resultado = stm.executeQuery(PESQUISA_SISTEMA);
while(resultado.next()){
String codigo = resultado.getString("cod_bd");
String nome = resultado.getString("nome_bd");
String versao = resultado.getString("versao_bd");
String finalidade = resultado.getString("finalidade_bd");
System.out.println(codigo+" , " + nome + " , " + versao + " , " + finalidade);
}
}
catch(SQLException e){
e.printStackTrace();
}
}