Não Sei como pegar uma lista do resultset

6 respostas
A

Boa Tarde,

Estou apanhando um pouco com o resultset,

Tenho a classe ManProjeto listada abaixo, esta classe tem o método getLista() que me faz um select de uma tabela do meu banco de dados, isto está funcionando perfeitamente.

Tenho tambem a classe FrmCProjeto listada a seguir que tem o método JtCodigoProjetoFocusLost, que é o lostfocus de um botão que deveria pegar os dados desta lista e colocar
estes dados em uma tabela.

Meu problema é que não sei como pegar estes dados do método que está em outra classe, eu consigo pegar o registro onde o select está parado mas não consigo pegar os outros
registros.

alguem pode me ajudar por favor.

Obrigado.

/* * To change this template, choose Tools | Templates

  • and open the template in the editor.
    */
package piscofins;

import java.sql.<em>;

import javax.swing.</em>;

/**
*

  • @author amauri
    
    <em>/
    
    public class ManProjeto
    
    {
    
    Connection con;
    
    Statement stmt;
    
    ResultSet rs;
    
    static String driver = sun.jdbc.odbc.JdbcOdbcDriver;
    
    static String url    = jdbc:odbc:PJSped;
    
    String strSQL;
    
    /</em> Definição das Variaveis*/
    
    String VsMascPla;
    
    int    VicodResp;
    
    int    ViHorEsti;
    
    Date   VdPrvEnce;
    
    Date   VddatInic;
    
    int    ViCodigo;
    
    /***********************************/
    
    String codigo;
    
    String Vs_MascPla;
    
    Date   Vd_datInic;
    
    Date   Vd_PrvEnce;
    
    int    Vi_HorEsti;
    
    int    Vi_codResp;
    
    String Vs_PrvEnce;
    
    int    Vd_Codigo;
    
    public void abrirDB()
    
    {
    
    try
    
    {
    
    Class.forName(driver);
    
    con = DriverManager.getConnection(url,system,aba1966);
    
    stmt = con.createStatement();
    
    }
     catch(ClassNotFoundException e)
     {
         System.out.println("Classe não encontrada. ");
     }
     catch(SQLException e)
     {
         System.out.println("Não foi Possivel estabelecer a conexão. " );
     }
    

    }

    public void fecharDB()
    
    {
    
    try
    
    {
    
    con.close();
    
    stmt.close();
    
    }
    
    catch(SQLException e){ }
    
    }
    
    public void getDados(int VscodPro)
    
    {
    
    try
    
    {
    
    strSQL = "SELECT * FROM Projeto WHERE codigo = " + VscodPro;
    
    rs=stmt.executeQuery(strSQL);
    
    boolean nRegistros = false;
         while(rs.next())
         {
             nRegistros = true;
             ViCodigo   = rs.getInt("codigo");
             VsMascPla  = rs.getString("MascPla");
             VicodResp  = rs.getInt("codResp");
             ViHorEsti  = rs.getInt("HorEsti");
             VdPrvEnce  = rs.getDate("PrvEnce");
             VddatInic  = rs.getDate("dtaInic");   
         }
       
         if(nRegistros == false)
         {
             JOptionPane.showMessageDialog(null,"Registro não exite!","Atenção!",JOptionPane.INFORMATION_MESSAGE);
         }
     }
     catch(SQLException e){ }
    

    }

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////ESTE É O MÉTODO QUE LISTA OS DADOS DA TABELA DE PROJETO////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    public void getLista()
    
    {
    
    try
    
    {
    
    strSQL = SELECT * FROM Projeto;
    
    rs=stmt.executeQuery(strSQL);
    
    boolean nRegistros = false;
         while(rs.next())
         {
             nRegistros = true;
             ViCodigo   = rs.getInt("codigo");
             VsMascPla  = rs.getString("MascPla");
             VicodResp  = rs.getInt("codResp");
             ViHorEsti  = rs.getInt("HorEsti");
             VdPrvEnce  = rs.getDate("PrvEnce");
             VddatInic  = rs.getDate("dtaInic");   
         }
       
         if(nRegistros == false)
         {
             JOptionPane.showMessageDialog(null,"Registro não exite!","Atenção!",JOptionPane.INFORMATION_MESSAGE);
         }
     }
     catch(SQLException e){ }
    

    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    public void inserirDados()
    
    {
    
    try
    
    {
    
    strSQL = INSERT INTO Projeto(MASCPLA,CODRESP,HORESTI,PRVENCE,DTAINIC,CODIGO)
    
    + " VALUES (’" + VsMascPla
    
    +        “’, + VicodResp
    
    +        " ," + ViHorEsti
    
    +        , to_date (’” + VdPrvEnce + “’,yyyy/mm/dd)
    
    +        , to_date (’” + VddatInic + “’,yyyy/mm/dd)
    
    +        , + ViCodigo + );
    
    stmt.executeUpdate(strSQL);
       JOptionPane.showMessageDialog(null,"Dados cadastrados com sucesso!!","Atenção!",JOptionPane.INFORMATION_MESSAGE);
     }
     catch(SQLException e)
     {
           JOptionPane.showMessageDialog(null,"Este registro já existe","Atenção!",JOptionPane.INFORMATION_MESSAGE);
     }
    

    }

    void excluirRegistro()
    
    {
    
    try
    
    {
    
    strSQL = DELETE FROM Projeto WHERE codigo = '” +   codigo + “’” ;
    
    stmt.executeUpdate(strSQL);
    
    JOptionPane.showMessageDialog(null, Dados excluidos com sucesso!,Sistema, JOptionPane.INFORMATION_MESSAGE);
    
    }
    
    catch (SQLException e)	
    
    {
    
    System.out.println(não excluiu);
    
    System.err.print(e);
    
    e.printStackTrace();
    
    }
    
    }
    

    /**

    • @return the VsMascPla
      */
    public String getVsMascPla() {
    
    return VsMascPla;
    
    }
    

    /**

    • @param VsMascPla the VsMascPla to set
      */
      public void setVsMascPla(String VsMascPla) {
      this.VsMascPla = VsMascPla;
      }

    /**

    • @return the VicodResp
      */
      public int getVicodResp() {
      return VicodResp;
      }

    /**

    • @param VicodResp the VicodResp to set
      */
      public void setVicodResp(int VicodResp) {
      this.VicodResp = VicodResp;
      }

    /**

    • @return the ViHorEsti
      */
      public int getViHorEsti() {
      return ViHorEsti;
      }

    /**

    • @param ViHorEsti the ViHorEsti to set
      */
      public void setViHorEsti(int ViHorEsti) {
      this.ViHorEsti = ViHorEsti;
      }

    /**

    • @return the VsPrvEnce
      */
      public Date getVsPrvEnce() {
      return VdPrvEnce;
      }

    /**

    • @param VsPrvEnce the VsPrvEnce to set
      */
      public void setVsPrvEnce(Date VdPrvEnce) {
      this.VdPrvEnce = VdPrvEnce;
      }

    /**

    • @return the VddatInic
      */
      public Date getVddatInic() {
      return VddatInic;
      }

    /**

    • @param VddatInic the VddatInic to set
      */
      public void setVddatInic(Date VddatInic) {
      this.VddatInic = VddatInic;
      }

    /**

    • @return the VdCodigo
      */
      public int getViCodigo() {
      return ViCodigo;
      }

    /**

    • @param VdCodigo the VdCodigo to set
      */
      public void setViCodigo(int ViCodigo) {
      this.ViCodigo = ViCodigo;
      }

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

/*

  • FrmCProjeto.java
  • Created on 07/06/2011, 09:47:17
    */

package piscofins;

import javax.swing.table.DefaultTableModel;
import java.sql.*;

/**
*

  • @author amauri
    */
    public class FrmCProjeto extends javax.swing.JFrame {

    /** Creates new form FrmCProjeto */
    
    public FrmCProjeto() {
    
    initComponents();
    
    }
    

    /** This method is called from within the constructor to

    • initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is

    • always regenerated by the Form Editor.
      
      */
      
      @SuppressWarnings(unchecked)
      
      // 
      
      private void initComponents() {
      
      jScrollPane1 = new javax.swing.JScrollPane();
      
      jTable1 = new javax.swing.JTable();
      
      JtCodigoProjeto = new javax.swing.JTextField();
      
      JtDataInicio = new javax.swing.JTextField();
      
      jButton1 = new javax.swing.JButton();
      

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

      jTable1.setModel(new javax.swing.table.DefaultTableModel(
      
      new Object [][] {
      
      {null, null, null, null},
      
      {null, null, null, null},
      
      {null, null, null, null},
      
      {null, null, null, null}
      
      },
      
      new String [] {
      
      Title 1, Title 2, Title 3, Title 4
      
      }
      
      ));
      
      jScrollPane1.setViewportView(jTable1);
      
      JtCodigoProjeto.setText(jTextField1);
      
      JtCodigoProjeto.addFocusListener(new java.awt.event.FocusAdapter() {
      
      public void focusLost(java.awt.event.FocusEvent evt) {
      
      JtCodigoProjetoFocusLost(evt);
      
      }
      
      });
      

      JtDataInicio.setText(“jTextField2”);

      jButton1.setText(jButton1);
      
      jButton1.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      jButton1ActionPerformed(evt);
      
      }
      
      });
      
      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      
      getContentPane().setLayout(layout);
      
      layout.setHorizontalGroup(
      
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 647, Short.MAX_VALUE)
      
      .addGroup(layout.createSequentialGroup()
      
      .addComponent(JtCodigoProjeto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addGap(256, 256, 256)
      
      .addComponent(jButton1))
      
      .addComponent(JtDataInicio, javax.swing.GroupLayout.PREFERRED_SIZE, 135, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      .addContainerGap())
      
      );
      
      layout.setVerticalGroup(
      
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(layout.createSequentialGroup()
      
      .addGap(26, 26, 26)
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      
      .addComponent(JtCodigoProjeto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addComponent(jButton1))
      
      .addGap(18, 18, 18)
      
      .addComponent(JtDataInicio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addGap(18, 18, 18)
      
      .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 226, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addContainerGap(73, Short.MAX_VALUE))
      
      );
      

      pack();
      }//

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///ESTE É O MÉTODO NO QUAL EU GOSTARIA QUE APARECECEM TODOS OS REGISTROS DA TABELA /////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    private void JtCodigoProjetoFocusLost(java.awt.event.FocusEvent evt) {
    
    // TODO add your handling code here:
    
    ManProjeto u = new ManProjeto();
    
    u.abrirDB();
    
    u.getLista();
    
    DefaultTableModel Modelo = (DefaultTableModel)jTable1.getModel();
    
    Modelo.setNumRows(0);
    
    ///////////////////////////////////////////////////////////////
    
    int      ViCodigo = u.ViCodigo;
    
    Date     VdInicio = u.VddatInic;
    
    Date     VdPrvEnc = u.Vd_PrvEnce;
    
    int      ViHorEst = u.ViHorEsti;
    
    int      ViCodRes = u.Vi_codResp;
    
    ///////////////////////////////////////////////////////////////
    
    Object[] args = {ViCodigo,VdInicio,VdPrvEnc,ViHorEst,ViCodRes};
    
    Modelo.addRow(args);
    
    }
    

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///ESTE É O MÉTODO NO QUAL EU GOSTARIA QUE APARECECEM TODOS OS REGISTROS DA TABELA /////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    }

    /**

    • @param args the command line arguments
      */
      public static void main(String args[]) {
      java.awt.EventQueue.invokeLater(new Runnable() {
      @Override
      public void run() {
      new FrmCProjeto().setVisible(true);
      }
      });
      }
    // Variables declaration - do not modify
    
    private javax.swing.JTextField JtCodigoProjeto;
    
    private javax.swing.JTextField JtDataInicio;
    
    private javax.swing.JButton jButton1;
    
    private javax.swing.JScrollPane jScrollPane1;
    
    private javax.swing.JTable jTable1;
    
    // End of variables declaration
    

}

6 Respostas

worldsoft

Cara leia aqui antes, corriga seu post para podermos te ajudar, pois assim tá difícil.

tuliomonteazul

Cara, colar o código sem formatar fica dificil de ler e atrapalha quem for tentar te ajudar.
Dá uma olhada nesse post http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

Aqui o exemplo de como seria teu código formatado:

/* * To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 

package piscofins; 
import java.sql.*; 
import javax.swing.*; 

/** 
* 
* @author amauri 
*/ 
public class ManProjeto 
{ 
Connection con; 
Statement stmt; 
ResultSet rs; 
static String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; 
static String url = "jdbc:odbcJSped"; 
String strSQL; 
...
L

deixa eu entender,

vc tem essa tabela ‘Projeto’, isso vc quer fazer com que busque varios dados no seu banco, mas não esta conseguindo…

A

lokit"s
é isto,

o acesso ao banco está funcionando certinho, eu consigo listar o registro onde o resultset está posicionado mas não consigo fazer com que ele navege nos próximos registros. tipo Next, Prior etc.

L

veja meu conceito, de como faço e tenta entender,pode questionar!

public ClientTO consultar(String nome){


		ClientTO clientTO = new ClientTO();

		try { 

			ResultSet rs = null;   

			con = DAOConexao.getConn(); 

			String sql = " Select * from tb_Clientes where NOMECLI = '" +nome + "'";


			pstm = con.prepareStatement(sql);
			rs = pstm.executeQuery(); 

			if(rs.next()){
				//rs.last();   
				clientTO.setCodigoImprCliente(rs.getString("CodigoImprCliente"));
				clientTO.setNome(rs.getString("NOMECLI"));			
				clientTO.setEndereco(rs.getString("ENDERECOCLI"));
				clientTO.setTel(rs.getString("TELEFONECLI"));
			}
			else{
				new Mensagem(null, "Aviso", "Item não localizado", Mensagem.MSG_BOTAO_OK, Mensagem.MSG_ICONE_ERRO);
			}

		}catch(Exception e){
			System.out.println(e.toString());
		}finally{


			try{
				//pstm.close(); 
				//con.close();
			}catch(Exception e){

			}
		}
		return clientTO;
	}
A

----RESOLVIDO -----

Obrigado pelo pessoal que me ajudou, desculpe pelo codigo que coloquei sem formatação vou tentar arranjar um tempo pra aprender a formatar quando precisar postar alguma coisa.

eu parti da dica do colega lokit"s fiz algumas alterações pertinentes ao meu padrão de projeto e funcionou.

Obrigado.

Criado 16 de junho de 2011
Ultima resposta 23 de jun. de 2011
Respostas 6
Participantes 4