Ae pessoal tudo bom?
Seguinte, acompanho o fórum a um tempo, ele ja me tirou várias dúvidas.
Mas agora eu to quase ficando loco, e não consigo fazer meu JTable mostrar o resultado de uma query de um SQLServer.
To tentando utilizar o padrão DAO, então tenho os métodos de cadastro, exclusão, listagem, etc…
Segue o código:
Na Package Persistência eu tenho várias classes, segue a parte aonde estou tendo problemas:
MidiaDAO.java
public Vector<Midia> ListaMidias() throws Exception{
AbrirBanco();
String SQL = "Select * from midia";
st = con.prepareStatement(SQL);
rs = st.executeQuery();
Vector ListaMidias = new Vector();
while (rs.next())
ListaMidias.add(rs.getInt("idmidia"));
ListaMidias.add(rs.getString("artista"));
ListaMidias.add(rs.getString("nomemidia"));
return ListaMidias();
Enfim, criei esse método que faz a consulta no banco, e me retorna um vetor com o resultado. Está correto?
Então, no Netbeans criei um JDialog, modal, com uma JTable para chamar esse método acima e mostrar os valores.
Segue o que estou fazendo depois do initComponents(); que o netbeans cria
MidiaDAO mdo = new MidiaDAO();
DefaultTableModel dtm = (DefaultTableModel)this.tblcds.getModel();
try {
Vector midias = mdo.ListaMidias();
for (int i = 1; i < midias.size(); i++)
dtm.addRow(midias);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
Quando executo o programa, e entro no JDialog que contem esse código tenho a seguinte exception:
com.microsoft.sqlserver.jdbc.SQLServerException: O conjunto de resultados não tem linha atual.
Poderiam me ajudar? Já procurei em vários lugares, alguns falam para utilizar List, ArrayList, AbstractModel, DefaultModel, enfim… to bem perdido nesse JTable.