@JanaAeso escreveu:
Pessoal,
Estou tentando criar o metodo inserir para atender acesso ao BD usando java.
Já fiz o metodo procurar mas o inserir está dando erro no objeto da fk orgao_emissor_id da tabela certidao.
Poderias me ajudar pq nao estou conseguindo setar o Objeto Orgao Emissor.
Segue abaixo o repositorio e o main.package br.com.certidoes.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import br.com.certidoes.classes.Certidao; import br.com.orgaoemissor.jdbc.ConexaoJDBC; public class RepositorioCertidoesBD implements RepositorioCertidoes{ private String nomeDriver; private String urlConexao; private String usuarioConexao; private String senhaConexao; private boolean indDriverCarregado; private static final String MSG_FALHA_CARGA_DRIVER = "Nome do driver JDBC usado não corresponde a uma classe válida"; private static final String MSG_ERRO_CONEXAO = "Erro ao obter conexão com o banco de dados"; private static final String MSG_ERRO_ACESSO_BD = "Erro de acesso ao banco de dados"; private static final String MSG_CERTIDAO_NAO_CADASTRADA = "Certidao não cadastrada "; private static final String MSG_ID_NAO_ENCONTRADO = "ID não encontrado"; private static final String MSG_ID_INVALIDO = "ID inválido"; private static final String INSERT_CERTIDAO = "INSERT INTO certidao (id, nome, DiasEmissao, Orgao_Emissor_id) VALUES (?,?,?,?)"; // "INSERT INTO certidao (nome, DiasEmissao, Orgao_Emissor_id) VALUES (?,?,?,?)"; private static final String PROCURA_CERT= "SELECT id, nome, DiasEmissao, Orgao_Emissor_id FROM certidao WHERE id = ?"; private static final String LISTA_CERT = "SELECT id, nome, DiasEmissao, Orgao_Emissor_id FROM certidao"; private static final String DELETE_CERT = "DELETE FROM certidao WHERE id = ?"; private static final String ATUALIZAR_CERT = "UPDATE certidao SET nome = ? WHERE id = ?"; public RepositorioCertidoesBD( String pNomeDriver, String pUrlConexao, String pUsuarioConexao, String pSenhaConexao) { super(); nomeDriver = pNomeDriver; urlConexao = pUrlConexao; usuarioConexao = pUsuarioConexao; senhaConexao = pSenhaConexao; indDriverCarregado = false; } private Connection getConexao() { if (!indDriverCarregado) { try { Class.forName(nomeDriver); indDriverCarregado = true; } catch (ClassNotFoundException e) { System.err.print(MSG_FALHA_CARGA_DRIVER); } } try { return DriverManager.getConnection( urlConexao, usuarioConexao, senhaConexao); } catch (SQLException e) { System.err.print(MSG_ERRO_CONEXAO); return null; } } public void inserir (Certidao c) { if (c != null) { Connection con = getConexao(); PreparedStatement psCert = null; PreparedStatement psEnd = null; try { psCert = con.prepareStatement(INSERT_CERTIDAO); psCert.setInt(1, c.getId()); psCert.setString(2, c.getNome()); psCert.setString(3, c.getDiasEmissao()); psCert.setInt(4, c.getOrgao_Emissao.getIdOrgao_Emissao()) // Certidao certi = new Certidao(); //// psCert.setInt(4, c.getOrgao_Emissor()); // certi.setOrgao_Emissor_id(ConexaoJDBC.obterInstancia().procurar(certi.getOrgao_Emissor_id()); psCert.executeUpdate(); } catch (SQLException e) { System.err.print(e.getMessage()); } finally { fechaRecursos(con, psCert, null); fechaRecursos(con, psEnd, null); } } } public void atualizar (Certidao c) { if (c != null) { Connection con = getConexao(); PreparedStatement psCert = null; PreparedStatement psEnd = null; try { psCert = con.prepareStatement(ATUALIZAR_CERT); psCert.setString(1, c.getNome()); psCert.setInt(2, c.getId()); // psCert.setString(3, c.getDiasEmissao()); // psCert.setInt(4, c.getOrgao_Emissor_id()); psCert.executeUpdate(); } catch (SQLException e) { System.err.print(e.getMessage()); } finally { fechaRecursos(con, psCert, null); fechaRecursos(con, psEnd, null); } } } public Certidao procurar(int id) { if (id != 0) { Connection con = getConexao(); PreparedStatement ps = null; ResultSet rs = null; try { ps = con.prepareStatement(PROCURA_CERT); ps.setInt(1, id); rs = ps.executeQuery(); if (rs.next()) { Certidao certidao = new Certidao(); certidao.setDiasEmissao(rs.getString(3)); certidao.setId(rs.getInt(1)); certidao.setNome(rs.getString(2)); certidao.setOrgao_Emissor_id(ConexaoJDBC.obterInstancia().procurar(rs.getInt(4))); return certidao; } else { System.err.print(MSG_CERTIDAO_NAO_CADASTRADA); } } catch (SQLException e) { System.err.println(MSG_ERRO_ACESSO_BD); System.err.println(e.getMessage()); } finally { fechaRecursos(con, ps, rs); } } return null; } private Certidao carregarCertidao(int int1) { // TODO Auto-generated method stub return null; } public ResultSet listar() { Connection con = getConexao(); PreparedStatement ps = null; ResultSet rs = null; try { ps = con.prepareStatement(LISTA_CERT); rs = ps.executeQuery(); if (rs.next()){ return rs; } } catch (SQLException e) { System.err.println(MSG_ERRO_ACESSO_BD); System.err.println(e.getMessage()); } return rs; } public void remover(int id) { if (id != 0) { Connection con = getConexao(); PreparedStatement ps = null; try { ps = con.prepareStatement(DELETE_CERT); ps.setInt(1, id); int rows = ps.executeUpdate(); if (rows <= 0) { System.err.println("ID não encontrado"); } } catch (SQLException e) { System.err.println(MSG_ID_NAO_ENCONTRADO); System.err.println(e.getMessage()); } finally { fechaRecursos(con, ps, null); } } else { System.err.println(MSG_ID_INVALIDO); } } private void fechaRecursos( Connection con, PreparedStatement ps, ResultSet rs) { try { if (rs != null) rs.close(); } catch (Exception e) { } try { if (ps != null) ps.close(); } catch (Exception e) { } try { if (con != null) con.close(); } catch (Exception e) { } } } ackage br.com.certidoes.jdbc; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import br.com.certidoes.classes.Certidao; public class TesteCertidoes { // @SuppressWarnings("deprecation") public static void main(String[] args) { Certidao c = new Certidao(); c.setId(); c.setNome("URB"); c.setDiasEmissao("10"); c.getOrgao_Emissor_id(); // //// c.setId(3); // c.setNome("Compesa"); // c.setDiasEmissao("12"); // c.setOrgao_Emissor_id(5); // ConexionJDBC.obterInstancia().atualizar(c); // ConexionJDBC.obterInstancia().remover(2); // Certidao certidao = ConexionJDBC.obterInstancia().procurar(100); // System.out.println(certidao.toString()); ConexionJDBC.obterInstancia().inserir(c); ResultSet rs = ConexionJDBC.obterInstancia().listar(); // // ResultSetMetaData mdata; try { mdata = rs.getMetaData(); int colCount = mdata.getColumnCount(); String[] colNames = new String[colCount]; for (int i = 1; i <= colCount; i++) { colNames[i - 1] = mdata.getColumnName(i); } rs.beforeFirst(); while (rs.next()) { String[] rowData = new String[colCount]; for (int i = 1; i <= colCount; i++) { rowData[i - 1] = rs.getString(i); System.out.println(rowData[i - 1]); } } } catch (SQLException e) { e.printStackTrace(); } } }
Mensagens: 2
Participantes: 2