Como Usar o RecordSet

1 resposta
J

o meu problema consiste no seguinte:
eu tenho uma tabela e tenho o dao desta tabela
o problema que que no dao eu quero selecionar e preencher na classe da tabela apenas os campos necessários para
a minha consulta...

segue a tabela e o dao com a consulta para que vcs possam analisar:

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

/**
 *
 * @author Admin
 */
public class Tabela {
    private long TabId=0;
    private String TabNome;
    private String TabCampo01;
    private String TabCampo02;
    private String TabCampo03;
    private String TabCampo04;
    private String TabCampo05;
    private String TabCampo06;

    public long getTabId() {
        return TabId;
    }

    public void setTabId(long TabId) {
        this.TabId = TabId;
    }

    public String getTabNome() {
        return TabNome;
    }

    public void setTabNome(String TabNome) {
        this.TabNome = TabNome;
    }

    public String getTabCampo01() {
        return TabCampo01;
    }

    public void setTabCampo01(String TabCampo01) {
        this.TabCampo01 = TabCampo01;
    }

    public String getTabCampo02() {
        return TabCampo02;
    }

    public void setTabCampo02(String TabCampo02) {
        this.TabCampo02 = TabCampo02;
    }

    public String getTabCampo03() {
        return TabCampo03;
    }

    public void setTabCampo03(String TabCampo03) {
        this.TabCampo03 = TabCampo03;
    }

    public String getTabCampo04() {
        return TabCampo04;
    }

    public void setTabCampo04(String TabCampo04) {
        this.TabCampo04 = TabCampo04;
    }

    public String getTabCampo05() {
        return TabCampo05;
    }

    public void setTabCampo05(String TabCampo05) {
        this.TabCampo05 = TabCampo05;
    }

    public String getTabCampo06() {
        return TabCampo06;
    }

    public void setTabCampo06(String TabCampo06) {
        this.TabCampo06 = TabCampo06;
    }
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package testebanco;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author Admin
 */
public class TabelaDao {

    private Connection con1 = null;

    public TabelaDao() throws SQLException {

        String url = "jdbc:sqlserver://localhost:1433";
        con1 = DriverManager.getConnection(url, "adminsql", "123");

    }

    public Tabela Consulta(long Id, String... campos) throws SQLException {
        StringBuilder sb = new StringBuilder();
        sb.append("select ");

        int i = 0;
        for (String s : campos) {
            i++;
            sb.append(s);
            if (i != campos.length) {
                sb.append(",");
            }
        }
        
        sb.append(" from tabela where TabId = ?");
        
        System.out.println(sb.toString());
        PreparedStatement stmt = this.con1.prepareStatement(sb.toString());
        stmt.setLong(1, Id);
        ResultSet rs = stmt.executeQuery();
        Tabela tabela = null;
        
        while (rs.next()) {
            tabela = new Tabela();
            // como montar os campos aqui
            // eu nao quero montar um monte de ifs
        }

        rs.close();
        stmt.close();
        this.con1.commit();
        return tabela;

    }
    
    public static void main(String[] args) throws SQLException {
        TabelaDao dao = new TabelaDao();
        dao.Consulta(1, "tabcampo03","tabcampo04");
    }
}

1 Resposta

U

jonasjgs2 pelo que eu entendi você quer carregar na classe apenas as informações que irá utilizar. Para isso você pode utilizar o padrão de projeto Lazy Load. Dá uma pesquisa/estudada e qualquer dúvida fala ai que te mostro alguns códigos.

Criado 25 de junho de 2014
Ultima resposta 4 de jul. de 2014
Respostas 1
Participantes 2