Galera estou tentando retornar uma coluna no SQL
mas não to conseguindo?
Classe ClienteDao
public String localizarClientes(String nome) throws Exception {
String select = "select * from cliente order by id";
PreparedStatement stmt = getConnection().prepareStatement(select);
ResultSet rs = stmt.executeQuery();
while(rs.next()){
Cliente cliente = new Cliente();
cliente.setNome(rs.getString("nome"));
}
rs.close();
stmt.close();
return nome;
}
Classe ClienteController
public String listaClientes2(String nome) throws Exception{
ClienteDao dao = new ClienteDao();
try
{
return dao.localizarClientes(nome);
}catch (SQLException e){
JOptionPane.showMessageDialog(null,
"Problemas ao localizar contaton" + e.getLocalizedMessage());
}
return null;
}
Classe Principal
private void onClickLocalizar() throws Exception {
Cliente c = new Cliente();
String nome = new ClienteController().listaClientes2(c.getNome());
System.out.println(nome);
}
Galera oque devo alterar ja verifiquei varios para que um metodo seja uma string e possa buscar ela na classe principal?
Olá Diego.
Primeiramente, na classe principal, você instanciou um Cliente mas não atribuiu um nome a ele. Portanto você enviou null ao método listaClientes2()
Na classe ClienteDao:
No método localizaCliente() você está retornando o mesmo valor que você inseriu lá na classe principal, ou seja, null
Pelo que entendi, você quer retornar todos os nomes da tabela, veja o exemplo:
Classe Principal:
public static void main(String[] args) {
ClienteDao dao = new ClienteDao();
List<String> lista = dao.listaClientes();
for(String nome : lista) {
System.out.println("Nome: " + nome);
}
}
Classe ClienteDao:
public List<String> listaClientes() {
String sql = "select * from cliente order by id";
List<String> lista = new ArrayList<String>();//Crie uma lista para armazenar os dados do banco
try {
PreparedStatement statement = getConnection().prepareStatement(sql);
ResultSet result = statement.executeQuery();
while(result.next()) {
lista.add(result.getString("nome"));//Adicione cada linha retornada do banco
}
result.close();
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
return lista;//Retorne a lista de String com todos os nome do banco de dados
}
A tabela que usei:
create table cliente(
id int auto_increment,
nome varchar(80),
primary key(id)
);