Editei o post porque eu parti para AbstractTabelModel.
Seguinte, tenho uma classe DAO que faz uma consulta e seta uma List resultado.
Agora estou com problemas em como construir minha TabelModel…
Até agora tenho isso:
import java.sql.SQLException;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel.*;
public class TableModel extends AbstractTableModel {
DAO DAO = new DAO();
private static final long serialVersionUID = 1L;
private String[] colunas = { "ID Componente", "Componente", "Origem",
"Destino", "Alias", "Ordem de Origem", "Ordem de Destino" };
private List<InfraBridge> resultado;
public void iniciaTabela() throws SQLException{
DAO.consulta();
resultado = DAO.infraBridge.getListaResultado();
}
public int getColumnCount() {
return colunas.length;
}
public int getRowCount(){
return resultado.size();
}
public String getColunmName(int coluna){
return null;
}
public Object getValueAt(int arg0, int arg1) {
return null;
}
}
Meu DAO é:
//import java.io.BufferedReader;
//import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class DAO {
Conexao conexao = new Conexao();
public String filtroAlterar;
public String filtroAdd = "";
Scanner entrada = new Scanner(System.in);
InfraBridge infraBridge = new InfraBridge();
LoggingTest log = new LoggingTest();
private InputStream txt;
private String confirma;
// private String linha = "";
private boolean errado;
private int idComponente;
private int idDestino;
private int idOrigem;
private String componente;
private String verificaComponente;
private int ordem1;
private int verificaOrdem1;
private int ordem2;
private int verificaOrdem2;
private String UPDATE1, UPDATE2, UPDATE3, UPDATE4, UPDATE5, UPDATE6;
private String DELETAR1, DELETAR2, DELETAR3, DELETAR4, DELETAR5;
private String INCLUIR_ORDEM1;
private String INCLUIR_ORDEM2;
private final static String INCLUIR_TFWKIBDG_CMPT = ("INSERT INTO TFWKIBDG_CMPT (NOME_CMPT,NOME_ALIA_CMPT)VALUES (?,?)");
private final static String INCLUIR_TFWKIBDG_GRUP_SERD = ("INSERT INTO TFWKIBDG_GRUP_SERD (NOME_GRUP_SERD)VALUES (?)");
private final static String INCLUIR_TFWKIBDG_SERD = ("INSERT INTO TFWKIBDG_SERD (NOME_SERD)VALUES (?)");
private final static String CONSULTA = " SELECT SERD.COD_SERD, GRD_SERD.COD_GRUP_SERD, NUM_ORDE_GRUP, NUM_ORDE_SERD, NOME_GRUP_SERD, NOME_SERD, NOME_ALIA_CMPT ,CMPT.COD_CMPT, NOME_CMPT FROM TFWKIBDG_CMPT_GRUP_SERD COMP WITH(NOLOCK)"
+ " INNER JOIN TFWKIBDG_GRUP_SERD_SERD GRP_SERD_SERD WITH(NOLOCK)"
+ " ON COMP.COD_GRUP_SERD = GRP_SERD_SERD.COD_GRUP_SERD"
+ " INNER JOIN TFWKIBDG_GRUP_SERD GRD_SERD WITH(NOLOCK)"
+ " ON GRP_SERD_SERD.COD_GRUP_SERD = GRD_SERD.COD_GRUP_SERD"
+ " INNER JOIN TFWKIBDG_SERD SERD WITH(NOLOCK)"
+ " ON GRP_SERD_SERD.COD_SERD = SERD.COD_SERD"
+ " INNER JOIN TFWKIBDG_CMPT CMPT WITH(NOLOCK)"
+ " ON COMP.COD_CMPT = CMPT.COD_CMPT";
private String FILTRO;
private String CONSULTAD;
private String CONSULTAC;
private String CONSULTAO1;
private String CONSULTAO2;
// aprimorar para string buffer.*******
/*
* public String getConsulta(final Integer codigo) { StringBuffer sql = new
* StringBuffer(); sql.append("select * from table ");
* sql.append("where table.codigo = "); sql.append(codigo); return
* sql.toString(); }
*/
public InfraBridge[] consulta() throws SQLException {
Conexao conexao = new Conexao();
Connection conn = conexao.conectar();
conn.setAutoCommit(false);
InfraBridge[] ib = null;
try {
ResultSet rs = null;
componente = infraBridge.getComponente();
if (componente != null) {
FILTRO = (" WHERE NOME_CMPT = " + "'" + componente + "'");
CONSULTAD = CONSULTA + FILTRO;
rs = conexao.executarConsulta(CONSULTAD);
}
if (componente == null) {
rs = conexao.executarConsulta(CONSULTA);
}
List<InfraBridge> result = new LinkedList<InfraBridge>();
System.out.println(); // formatação de linha
if (rs.next()) {
infraBridge.imprimirColuna();
do {
// InfraBridge infraBridge = new InfraBridge();
infraBridge.setOrdem1(rs.getInt("NUM_ORDE_GRUP"));
infraBridge.setOrdem2(rs.getInt("NUM_ORDE_SERD"));
infraBridge.setidDestino(rs.getInt("COD_GRUP_SERD"));
infraBridge.setidOrigem(rs.getInt("COD_SERD"));
infraBridge.setidComponente(rs.getInt("COD_CMPT"));
infraBridge.setServidorDestino(rs
.getString("NOME_GRUP_SERD"));
infraBridge.setServidorOrigem(rs.getString("NOME_SERD"));
infraBridge.setComponente(rs.getString("NOME_CMPT"));
infraBridge.setAliasComponente(rs
.getString("NOME_ALIA_CMPT"));
result.add(infraBridge);
infraBridge.imprimirRS();
} while (rs.next());
infraBridge.setListaResultado(result);
conexao.fecharResultSet(rs);
ib = new InfraBridge[result.size()];
result.toArray(ib);
errado = true;
} else {
System.out.println("..");
errado = false;
}
conn.commit();
} catch (SQLException ex) {
conn.rollback();
throw new RuntimeException(ex);
} finally {
conexao.desconnection();
}
return ib;
}
public void incluir() throws IOException, SQLException {
Conexao conexao = new Conexao();
consulta();
consultaOrdem1();
consultaOrdem2();
consultaComponente();
confirma();
if (verificaOrdem1 == 0 & verificaOrdem2 == 0
& verificaComponente == null) {
if (confirma.equalsIgnoreCase("S")) {
Connection conn = conexao.conectar();
conn.setAutoCommit(false);
if (errado == false) {
try {
idComponente = conexao
.execDML(
INCLUIR_TFWKIBDG_CMPT,
new Object[] {
infraBridge.getComponente(),
infraBridge
.getAliasComponenteAlterar() });
idDestino = conexao.execDML(INCLUIR_TFWKIBDG_GRUP_SERD,
new Object[] { infraBridge
.getServidorDestinoAlterar() });
idOrigem = conexao.execDML(INCLUIR_TFWKIBDG_SERD,
new Object[] { infraBridge
.getServidorOrigemAlterar() });
INCLUIR_ORDEM1 = ("INSERT INTO TFWKIBDG_CMPT_GRUP_SERD (COD_CMPT, COD_GRUP_SERD, NUM_ORDE_GRUP) VALUES ("
+ idComponente + "," + idDestino + ",?)");
INCLUIR_ORDEM2 = ("INSERT INTO TFWKIBDG_GRUP_SERD_SERD (COD_GRUP_SERD, COD_SERD, NUM_ORDE_SERD) VALUES ("
+ idDestino + "," + idOrigem + ",?)");
conexao.updateDML(INCLUIR_ORDEM1,
new Object[] { infraBridge.getOrdem1Alterar() });
conexao.updateDML(INCLUIR_ORDEM2,
new Object[] { infraBridge.getOrdem2Alterar() });
conn.commit();
System.out.println("Componente incluido com sucesso");
} catch (Exception e) {
conn.rollback();
}
} else {
help();
}
} else {
System.out.println("Operação cancelada.");
}
} else {
help();
}
}
public void alterar() throws IOException, SQLException {
Conexao conexao = new Conexao();
consulta();
consultaOrdem1();
consultaOrdem2();
consultaComponente();
confirma();
if (verificaOrdem1 == 0 & verificaOrdem2 == 0
& verificaComponente != null) {
if (confirma.equalsIgnoreCase("S")) {
Connection conn = conexao.conectar();
conn.setAutoCommit(false);
if (errado == true) {
try {
if (infraBridge.getComponenteAlterar() != null) {
UPDATE1 = "UPDATE TFWKIBDG_CMPT SET NOME_CMPT = '"
+ infraBridge.getComponenteAlterar()
+ "' WHERE COD_CMPT = "
+ infraBridge.getidComponente();
conexao.executarDML(UPDATE1);
}
if (infraBridge.getServidorOrigemAlterar() != null) {
UPDATE2 = "UPDATE TFWKIBDG_SERD SET NOME_SERD = '"
+ infraBridge.getServidorOrigemAlterar()
+ "' WHERE COD_SERD = "
+ infraBridge.getidOrigem();
conexao.executarDML(UPDATE2);
}
if (infraBridge.getServidorDestinoAlterar() != null) {
UPDATE3 = "UPDATE TFWKIBDG_GRUP_SERD SET NOME_GRUP_SERD = '"
+ infraBridge.getServidorDestinoAlterar()
+ "' WHERE COD_GRUP_SERD = "
+ infraBridge.getidDestino();
conexao.executarDML(UPDATE3);
}
if (infraBridge.getOrdem1Alterar() != 0) {
UPDATE4 = "UPDATE TFWKIBDG_CMPT_GRUP_SERD SET NUM_ORDE_GRUP = '"
+ infraBridge.getOrdem1Alterar()
+ "' WHERE COD_CMPT = "
+ infraBridge.getidComponente();
conexao.executarDML(UPDATE4);
}
if (infraBridge.getOrdem2Alterar() != 0) {
UPDATE5 = "UPDATE TFWKIBDG_GRUP_SERD_SERD SET NUM_ORDE_SERD = '"
+ infraBridge.getOrdem2Alterar()
+ "' WHERE COD_GRUP_SERD = "
+ infraBridge.getidDestino();
conexao.executarDML(UPDATE5);
}
if (infraBridge.getAliasComponenteAlterar() != null) {
UPDATE6 = "UPDATE TFWKIBDG_CMPT SET NOME_ALIA_CMPT = '"
+ infraBridge.getAliasComponenteAlterar()
+ "' WHERE COD_CMPT = "
+ infraBridge.getidComponente();
conexao.executarDML(UPDATE6);
}
conn.commit();
} catch (Exception e) {
conn.rollback();
}
} else {
help();
}
} else {
System.out.println("Operação cancelada.");
}
} else {
help();
}
}
public void deletar() throws IOException, SQLException {
Conexao conexao = new Conexao();
consulta();
confirma();
if (confirma.equalsIgnoreCase("S")) {
Connection conn = conexao.conectar();
conn.setAutoCommit(false);
if (errado == true) {
try {
DELETAR1 = ("DELETE FROM TFWKIBDG_CMPT_GRUP_SERD WHERE COD_CMPT = '"
+ infraBridge.getidComponente() + "'");
conexao.executarDML(DELETAR1);
DELETAR2 = ("DELETE FROM TFWKIBDG_GRUP_SERD_SERD WHERE COD_SERD = '"
+ infraBridge.getidOrigem() + "'");
conexao.executarDML(DELETAR2);
DELETAR3 = ("DELETE FROM TFWKIBDG_CMPT WHERE COD_CMPT = '"
+ infraBridge.getidComponente() + "'");
conexao.executarDML(DELETAR3);
DELETAR4 = ("DELETE FROM TFWKIBDG_GRUP_SERD WHERE COD_GRUP_SERD = '"
+ infraBridge.getidDestino() + "'");
conexao.executarDML(DELETAR4);
DELETAR5 = ("DELETE FROM TFWKIBDG_SERD WHERE COD_SERD = '"
+ infraBridge.getidOrigem() + "'");
conexao.executarDML(DELETAR5);
conn.commit();
System.out
.println("O componente foi removido do banco de dados.");
} catch (Exception e) {
conn.rollback();
}
} else {
help();
}
} else {
System.out.println("Operação cancelada.");
}
}
public String consultaComponente() throws SQLException {
Conexao conexao = new Conexao();
Connection conn = conexao.conectar();
conn.setAutoCommit(false);
CONSULTAC = "SELECT NOME_CMPT FROM TFWKIBDG_CMPT WHERE NOME_CMPT = '"
+ componente + "'";
verificaComponente = null;
try {
ResultSet rs = conexao.executarConsulta(CONSULTAC);
if (rs.next()) {
verificaComponente = rs.getString("NOME_CMPT");
}
conn.commit();
} catch (SQLException ex) {
conn.rollback();
throw new RuntimeException(ex);
} finally {
conexao.desconnection();
}
return verificaComponente;
}
public int consultaOrdem1() throws SQLException {
Conexao conexao = new Conexao();
Connection conn = conexao.conectar();
conn.setAutoCommit(false);
ordem1 = infraBridge.getOrdem1Alterar();
CONSULTAO1 = "SELECT NUM_ORDE_GRUP FROM TFWKIBDG_CMPT_GRUP_SERD WHERE NUM_ORDE_GRUP = '"
+ ordem1 + "'";
verificaOrdem1 = 0;
try {
ResultSet rs = conexao.executarConsulta(CONSULTAO1);
if (rs.next()) {
verificaOrdem1 = rs.getInt("NUM_ORDE_GRUP");
}
conn.commit();
} catch (SQLException ex) {
conn.rollback();
throw new RuntimeException(ex);
} finally {
conexao.desconnection();
}
return verificaOrdem1;
}
public int consultaOrdem2() throws SQLException {
Conexao conexao = new Conexao();
Connection conn = conexao.conectar();
conn.setAutoCommit(false);
ordem2 = infraBridge.getOrdem2Alterar();
CONSULTAO2 = "SELECT NUM_ORDE_SERD FROM TFWKIBDG_GRUP_SERD_SERD WHERE NUM_ORDE_SERD = '"
+ ordem2 + "'";
verificaOrdem2 = 0;
try {
ResultSet rs = conexao.executarConsulta(CONSULTAO2);
if (rs.next()) {
verificaOrdem2 = rs.getInt("NUM_ORDE_SERD");
}
conn.commit();
} catch (SQLException ex) {
conn.rollback();
throw new RuntimeException(ex);
} finally {
conexao.desconnection();
}
return verificaOrdem2;
}
public void help() throws IOException {
txt = getClass().getClassLoader().getResourceAsStream("txt/HELP.txt");
Scanner s = new Scanner(txt);
while (s.hasNext()) {
System.out.println(s.nextLine()); // exibindo conteudo do arquivo
}
}
private void confirma() {
do {
System.out.println("Confirma operação?");
confirma = entrada.nextLine();
} while (confirma.isEmpty() & !confirma.equalsIgnoreCase("S")
& !confirma.equalsIgnoreCase("N"));
}
}
E meu InfraBridge é:
import java.util.List;
public class InfraBridge {
private String aliasComponente;
private String componente;
private String servidorOrigem;
private String servidorDestino;
private String componenteAlterar;
private String aliasComponenteAlterar;
private String servidorOrigemAlterar;
private String servidorDestinoAlterar;
private int ordem1;
private int idComponente;
private int idDestino;
private int idOrigem;
private int ordem2;
private int ordem1Alterar;
private int ordem2Alterar;
private List<InfraBridge> resultado;
public void setListaResultado (List<InfraBridge> result){
this.resultado = result;
}
public void setAliasComponente(String aliasComponente) {
this.aliasComponente = aliasComponente;
}
public void setComponente(String componente) {
this.componente = componente;
}
public void setAliasComponenteAlterar(String aliasComponenteAlterar) {
this.aliasComponenteAlterar = aliasComponenteAlterar;
}
public void setServidorOrigem(String servidorOrigem) {
this.servidorOrigem = servidorOrigem;
}
public void setServidorDestino(String servidorDestino) {
this.servidorDestino = servidorDestino;
}
public void setidDestino(int idDestino) {
this.idDestino = idDestino;
}
public void setidOrigem(int idOrigem) {
this.idOrigem = idOrigem;
}
public void setidComponente(int idComponente) {
this.idComponente = idComponente;
}
public void setOrdem1(int ordem1) {
this.ordem1 = ordem1;
}
public void setOrdem2(int ordem2) {
this.ordem2 = ordem2;
}
public List<InfraBridge> getListaResultado(){
return resultado;
}
public String getAliasComponente() {
return aliasComponente;
}
public int getidComponente() {
return idComponente;
}
public int getidOrigem() {
return idOrigem;
}
public int getidDestino() {
return idDestino;
}
public String getComponente() {
return componente;
}
public String getAliasComponenteAlterar() {
return aliasComponenteAlterar;
}
public String getServidorOrigem() {
return servidorOrigem;
}
public String getServidorDestino() {
return servidorDestino;
}
public int getOrdem1() {
return ordem1;
}
public int getOrdem2() {
return ordem2;
}
public void setComponenteAlterar(String componenteAlterar) {
this.componenteAlterar = componenteAlterar;
}
public void setServidorOrigemAlterar(String servidorOrigemAlterar) {
this.servidorOrigemAlterar = servidorOrigemAlterar;
}
public void setServidorDestinoAlterar(String servidorDestinoAlterar) {
this.servidorDestinoAlterar = servidorDestinoAlterar;
}
public void setOrdem1Alterar(int ordem1Alterar){
this.ordem1Alterar = ordem1Alterar;
}
public void setOrdem2Alterar(int ordem2Alterar){
this.ordem2Alterar = ordem2Alterar;
}
public String getComponenteAlterar() {
return componenteAlterar;
}
public String getServidorOrigemAlterar() {
return servidorOrigemAlterar;
}
public String getServidorDestinoAlterar() {
return servidorDestinoAlterar;
}
public int getOrdem1Alterar(){
return ordem1Alterar;
}
public int getOrdem2Alterar(){
return ordem2Alterar;
}
public void imprimirColuna() {
System.out.printf("%s %30s %28s %28s %28s %29s", "Nome do Componente",
"Alias do Componente", "Servidor de Origem",
"Servidor de Destino", "Ordem de Origem", "Ordem de Destino\n");
}
public void imprimirRS() {
System.out.printf("%s %29s %29s %27s %28s %27s\n", componente,
aliasComponente, servidorOrigem, servidorDestino, ordem1,
ordem2);
}
}
Obrigado pela atenção.