Pessoal, boa tarde.
tenho uma tabela no banco de dados chamada: usuario que contém 2 colunas: nomeusuario e telefone, com 2 linhas:
nomeusuario | telefone
teste | 123
teste2 | 456
tenho 1 jTable com 2 colunas com os mesmos nomes da tabela do banco.
estou tentando fazer o seguinte: assim que eu digitar o nome teste na primeira linha da primeira coluna no jTable, eu quero que o sistema me traga de forma automática na coluna 2 (telefone) a informação que está no banco de dados, exemplo: se eu digitar teste, ele me traz 123, se eu digitar teste2 ele me traz 456, e assim por diante…
agradeço desde já a ajuda e a atenção de todos.
Alguém pode ajudar pessoal? não estou conseguindo mesmo
o jeito mais fácil é preencher direto com o banco de dados:
private void preencherTabela(){
String SQL = "SELECT * FROM table WHERE algumaCoisa='outra coisa'";
........
}
Mas isso vai gerar uma certa lentidão no seu projeto, então tenta isso:
https://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting
Opa, valew por responder orochimaru eu fiz a pesquisa no banco e estou tentando implementar na minha view, segue abaixo, porém ainda está faltando alguma coisa:
DAO
public List SelectTelefoneJTableNewDAO(String usuariobd){
List<LinhaPedMod> telefones = new ArrayList<>();
try{
con = ConexDAO.getConnectionDAO();
String query = ("SELECT telefone FROM usuariot WHERE usuario = ?");
stmt = con.prepareStatement(query);
stmt.setString(1, "%"+usuariobd+"%");
rs = stmt.executeQuery();
while (rs.next()){
LinhaPedMod telefone = new LinhaPedMod();
telefone.setTelefone(rs.getString(2));
telefones.add(telefone);
}
}
catch(SQLException ex){
JOptionPane.showMessageDialog(null,"erro ao trazer telefone" + ex.getMessage());
}
return telefones ;
}
VIEW
public void SelectTelefoneJTableVis(){
int linha = jTableTesteJF.getSelectedRow();
String usuariobd = String.valueOf(jTableTesteJF.getValueAt(linha,1));
List resultsql = lPDao.SelectTelefoneJTableNewDAO(usuariobd);
jTableTesteJF.setValueAt(resultsql, linha, 2);
Pessoal, após muito pesquisar e tentar, consegui graças a DEUS.
agradeço a todos que tentaram ajudar, segue abaixo como consegui…
DAO
public String SelectTelefoneJTableNewDAO(String usuariobd){
try{
con = ConexDAO.getConnectionDAO();
String query = ("SELECT telefone FROM usuariot WHERE usuario LIKE ?");
stmt = con.prepareStatement(query);
stmt.setString(1, "%"+usuariobd+"%");
rs = stmt.executeQuery();
while (rs.next()){
usuariobd = (rs.getString("telefone"));
}
}
catch(SQLException ex){
JOptionPane.showMessageDialog(null,"erro ao trazer telefone" + ex.getMessage());
}
return usuariobd;
}
VIEW
public void SelectTelefoneJTableVis(){
int linha = jTableTesteJF.getSelectedRow();
String usuariobd = String.valueOf(jTableTesteJF.getValueAt(linha,1));
String resultsql = lPDao.SelectTelefoneJTableNewDAO(usuariobd);
jTableTesteJF.setValueAt(resultsql, linha, 2);
espero ter ajudado aos demais…