Ola Lista,
 
Estou com o seguinte problema: fa�o acesso ao banco de dados e leio varios registros, associo cada registro a um objeto pessoa e devolvo tudo em ArrayList. O problema � que n�o consigo manipula-lo. Segue codigo, se alguem puder me ajudas.
 
Conexao.PessoaDB pDB = new Conexao.PessoaDB();
        try{
            ArrayList l = pDB.getPessoas();
            Iterator i = l.iterator();
            out.println("<table>");
            out.println("<tr><td>C�digo<td>Nome</tr>");
            while(i.hasNext()){
                Conexao.Pessoa p = i.next().clone();
                //out.println("<tr><td>" + String.valueOf(p.getCodigo()) + "<td> "+ p.getNome() + "</tr>");
                out.println("<tr><td>" + "teste" + "<td> "+ i.next() + "</tr>");
            }
            out.println("</table>");
        }catch(Exception e){
            out.println(e.getMessage());
        }
 
 
---------------------------------------------------------------------------------------------------------------------------------------------------
package Conexao;
 
import java.sql.*;
import java.util.*;
/**
 *
 * @author  Administrador
 * @version
 */
public class PessoaDB extends conexao{
 
    /** Creates new PessoaDB */
    public PessoaDB() {
        super();
    }
 
    public int getPessoa(Conexao.Pessoa p){
        Statement stmt;
        ResultSet rs;
        String sql;
        int erro;
        //
        erro=0;
        sql = "SELECT * FROM medico WHERE codigo = '" + String.valueOf(p.getCodigo()) + "'";
        try{
            stmt = this.con.createStatement();
            rs = stmt.executeQuery(sql);
            if (rs.next()){
                p.setNome(rs.getString(3));
            }else{
                erro=1;
            }
            rs.close();
            stmt.close();
            return(erro);
        }catch(Exception e){
            System.out.println(e.getMessage());
            return(2);
        }
    }
   
    public int setPessoa(Conexao.Pessoa p){
        Statement stmt;
        ResultSet rs;
        int row, erro=0;
        String sql;
        //
        try{
            stmt = this.con.createStatement();
            if (p.getCodigo()!=0){
                sql = "SELECT * FROM medico WHERE codigo = '" + String.valueOf(p.getCodigo()) + "'";
                rs = stmt.executeQuery(sql);
                if (rs.next()){
                    sql = "UPDATE medico SET nome='" + p.getNome() + "' WHERE codigo='" + String.valueOf(p.getCodigo()) + "'";
                }else{
                    sql = "INSERT INTO medico(nome) VALUES('" + p.getNome() + "')";
                }
                rs.close();
            }else{
                sql = "INSERT INTO medico(nome) VALUES('" + p.getNome() + "')";
            }
            row = stmt.executeUpdate(sql);
            if (row<1){
                erro = 1;
                System.out.println("Erro: "+ String.valueOf(row));  
            }
            stmt.close();
        }catch(Exception e){
            System.out.println(e.getMessage());
            erro=2;
        }
       return(erro);
    }
   
    public ArrayList getPessoas(){
        //ArrayList lista = new ArrayList();
        Statement stmt;
        ResultSet rs;
        Pessoa p;
        ArrayList lista = new ArrayList();
        try{
            stmt = this.con.createStatement();
            rs = stmt.executeQuery("SELECT * FROM medico ORDER BY nome");
            while(rs.next()){
                p = new Pessoa();
                p.setCodigo(rs.getInt("codigo"));
                p.setNome(rs.getString("nome"));
                lista.add(p);
            }
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
        return(lista);
    }
}
 
 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.377 / Virus Database: 211 - Release Date: 15/07/2002

Responder a