@JanaAeso escreveu:
Pessoal bom dia!
Gostaria de saber como eu faço o método atualizar. Estou desenvolvendo (tarefa da faculdade) aplicação em java jdbc, e não estou conseguindo desenvolver o método update (atualizar). Até tentei mas deu um erro de executeQuery neste método, segue o código até onde eu fiz. Mandei o main e o repositório. Quem puder me ajudar mais uma vez, agradeço pela atenção desde já!`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;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_CADASTRADA = "Certidao já 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 (?,?,?,?)"; 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_Emissor_id()); psCert.executeUpdate(); } catch (SQLException e) { System.err.print(e.getMessage()); } finally { fechaRecursos(con, psCert, null); fechaRecursos(con, psEnd, null); } } } public Certidao atualizar(int id) { if (id != 0) { Connection con = getConexao(); PreparedStatement ps = null; int rs = null; try { ps = con.prepareStatement(ATUALIZAR_CERT); ps.setInt(1, id);
// rs = ps.executeQuery();
rs = ps.executeUpdate();if (rs.next()) { int bdId = rs.getInt(1); String bdNome = rs.getString(2); String bdDiasEmissao = rs.getString(3); int bdOrgao_Emissor_id = rs.getInt(4); Certidao cert = new Certidao(); cert.setId(bdId); cert.setNome(bdNome); cert.setDiasEmissao(bdDiasEmissao); cert.setOrgao_Emissor_id(bdOrgao_Emissor_id); return cert; } else { System.err.print(MSG_CERTIDAO_CADASTRADA); } } catch (SQLException e) { System.err.println(MSG_ERRO_ACESSO_BD); System.err.println(e.getMessage()); } finally { fechaRecursos(con, ps, rs); } } return 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()) { int bdId = rs.getInt(1); String bdNome = rs.getString(2); String bdDiasEmissao = rs.getString(3); int bdOrgao_Emissor_id = rs.getInt(4); Certidao cert = new Certidao(); cert.setId(bdId); cert.setNome(bdNome); cert.setDiasEmissao(bdDiasEmissao); cert.setOrgao_Emissor_id(bdOrgao_Emissor_id); return cert; } else { System.err.print(MSG_CERTIDAO_CADASTRADA); } } catch (SQLException e) { System.err.println(MSG_ERRO_ACESSO_BD); System.err.println(e.getMessage()); } finally { fechaRecursos(con, ps, rs); } } 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) { } } }
package 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(1);
c.setNome("Licença de Operação do Conama");
c.setDiasEmissao("4");
c.setOrgao_Emissor_id(5);ConexionJDBC.obterInstancia().atualizar(1);
// 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: 1
Participantes: 1