PH_Nikit 0 Denunciar post Postado Novembro 22, 2009 Fala pessoal ... Estou precisando de uma ajuda, já pesquisei muito na net e não consigo resolver o problema. É o seguinte... Estou fazendo um projeto JAVA WEB, porém simples com JSP e Servlet, não estou utilizando DAO, nem struts, nem Hibernate. Vou postar o código e em seguida comentarei o problema: Código: Classe de Conexão: package Negocio; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.logging.Level; import java.util.logging.Logger; public class ConnectDB{ private final static String driver = "oracle.jdbc.driver.OracleDriver"; // Oracle JDBC driver private final static String url = "jdbc:oracle:thin:@localhost:1521:xe"; // a JDBC url private final static String username = "curriculo"; private final static String password = "curriculo"; private Connection con; private Statement st; private ResultSet rs; public void openDB() { try { Class.forName(driver); con = DriverManager.getConnection(url,username,password); st=con.createStatement(); System.out.println ("\nConexao estabelecida com Sucesso!\n"); } catch(ClassNotFoundException e) { System.out.println("\n Erro ao carregar JDBC / ODBC driver !\n"+e+"\n"); System.exit(1); } catch(SQLException e) { System.out.println("\nNao foi possivel estabelecer conexao\n"+e+"\n"); System.exit(1); } } public void closeDB() { try { rs.close(); st.close(); con.close(); System.out.println("\nConexao fechada com sucesso!.\n"); } catch (SQLException e) { System.out.println("\n Nao foi prossivel fechar conexao" + e + "\n"); System.exit(1); } } public boolean executaSQL(String sql){ try { this.openDB(); st.execute(sql); System.out.println("Executado com Sucesso!"); this.closeDB(); return true; } catch (Exception e) { e.printStackTrace(); System.out.println("Não foi possível executar a operação!"); this.closeDB(); return false; } } public ResultSet query(String sql) throws SQLException{ try{ this.openDB(); st.executeQuery(sql); rs = st.getResultSet(); return rs; } catch(Exception e){ e.printStackTrace(); System.out.println("Erro ou não possui registros para a Consulta!"); return null; } } public int selectId(String sql) throws SQLException{ try{ this.openDB(); st.executeQuery(sql); rs = st.getResultSet(); rs.next(); int id = rs.getInt(1); this.closeDB(); return id; } catch(Exception e){ e.printStackTrace(); System.out.println("Erro ou não possui registros para a Consulta!"); this.closeDB(); return -1; } } Classe Vagas: package Negocio; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; public class Vagas { ConnectDB db = new ConnectDB(); public ArrayList<Combo> comboInteresse() throws SQLException{ ArrayList<Combo> l = new ArrayList<Combo>(); ResultSet rs; String sql = "SELECT id_interesse, tipo FROM TB_INTERESSE WHERE status = 1"; rs = db.query(sql); while(rs.next()){ Combo c = new Combo(); c.setId(rs.getInt(1)); c.setTexto(rs.getString(2)); l.add(c); } db.closeDB(); return l; } } o problema está no ResultSet da classe Vagas! Debugando percebi que o cursor vai até o while(rs.next()) e pula para o closeDB. Aparentemente está tudo correto, eu não estou conseguindo enxergar o erro... se alguem puder ajudar eu agradeço. Vlw Compartilhar este post Link para o post Compartilhar em outros sites
Giovanni Ritchie 0 Denunciar post Postado Novembro 22, 2009 Dá pra tentar usar a tag , e indentar o código.. é que assim fica mesmo nojento e dificil de ler...E outra, é um erro de lógica ou compilação?? Compartilhar este post Link para o post Compartilhar em outros sites
PH_Nikit 0 Denunciar post Postado Novembro 22, 2009 Não dá erro explícito ... Debugando eu vi que cai no SQLException, porém a string SQL está correta pois eu já testei direto no Banco. Classe de Conexão: package Negocio; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.logging.Level; import java.util.logging.Logger; public class ConnectDB{ private final static String driver = "oracle.jdbc.driver.OracleDriver"; // Oracle JDBC driver private final static String url = "jdbc:oracle:thin:@localhost:1521:xe"; // a JDBC url private final static String username = "curriculo"; private final static String password = "curriculo"; private Connection con; private Statement st; private ResultSet rs; public void openDB() { [indent]try { [indent]Class.forName(driver); con = DriverManager.getConnection(url,username,password); st=con.createStatement(); System.out.println ("\nConexao estabelecida com Sucesso!\n");[/indent] } catch(ClassNotFoundException e) { [indent]System.out.println("\n Erro ao carregar JDBC / ODBC driver !\n"+e+"\n"); System.exit(1);[/indent] } catch(SQLException e) { [indent]System.out.println("\nNao foi possivel estabelecer conexao\n"+e+"\n"); System.exit(1);[/indent] }[/indent] } public void closeDB() { [indent]try { [indent]rs.close(); st.close(); con.close(); System.out.println("\nConexao fechada com sucesso!.\n");[/indent] } catch (SQLException e) { [indent]System.out.println("\n Nao foi prossivel fechar conexao" + e + "\n"); System.exit(1);[/indent] }[/indent] } public boolean executaSQL(String sql){ [indent]try { [indent]this.openDB(); st.execute(sql); System.out.println("Executado com Sucesso!"); this.closeDB(); return true;[/indent] } catch (Exception e) { [indent]e.printStackTrace(); System.out.println("Não foi possível executar a operação!"); this.closeDB(); return false;[/indent] }[/indent] } public ResultSet query(String sql) throws SQLException{ [indent]try{ [indent]this.openDB(); st.executeQuery(sql); rs = st.getResultSet(); return rs;[/indent] } catch(Exception e){ [indent]e.printStackTrace(); System.out.println("Erro ou não possui registros para a Consulta!"); return null;[/indent] }[/indent] } public int selectId(String sql) throws SQLException{ [indent]try{ [indent]this.openDB(); st.executeQuery(sql); rs = st.getResultSet(); rs.next(); int id = rs.getInt(1); this.closeDB(); return id;[/indent] } catch(Exception e){ [indent]e.printStackTrace(); System.out.println("Erro ou não possui registros para a Consulta!"); this.closeDB(); return -1;[/indent] }[/indent] } ====================================================================================================================== *** Outra Classe *** Classe Vagas: package Negocio; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; public class Vagas { [indent]ConnectDB db = new ConnectDB(); public ArrayList<Combo> comboInteresse() throws SQLException{ [indent]ArrayList<Combo> l = new ArrayList<Combo>(); ResultSet rs; String sql = "SELECT id_interesse, tipo FROM TB_INTERESSE WHERE status = 1"; rs = db.query(sql); while(rs.next()){ [indent]Combo c = new Combo(); c.setId(rs.getInt(1)); c.setTexto(rs.getString(2)); l.add( c );[/indent] } db.closeDB(); return l;[/indent] }[/indent] } Compartilhar este post Link para o post Compartilhar em outros sites
Giovanni Ritchie 0 Denunciar post Postado Dezembro 15, 2009 cara dá uma olhada nos tipos de dados da sua tabela... Veja se não há incompatibilidade... Outra coisa, ele não imprime nenhuma mensagem de erro?? Se for o caso coloque aqui Compartilhar este post Link para o post Compartilhar em outros sites