Pessoal gostaria de saber como faço para filtra por nome o meu aplicativo pelo código esta funcionando normalmente agora quando pelo nome da erro.Segue os meus dois códigos.No aguardo.
public static Cliente pesquisar (Integer codigo) {
Cliente cliente = new Cliente();
try{
String sql = "SELECT * FROM CLIENTE WHERE CODIGO=?";
Connection conn = ConnectionFcatory.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, codigo);
ResultSet res = stmt.executeQuery();
if (res.next()){
cliente.setCodigo(res.getInt("CODIGO"));
cliente.setNome(res.getString("NOME"));
cliente.setCpf(res.getString("CPF"));
}
stmt.close();
res.close();
conn.commit();
} catch (SQLException e){
e.printStackTrace();
}
return cliente;
}
Pesquisa por nome segue abaixo
public static Cliente pesquisar (String nome,String pesquisa) {
Cliente cliente = new Cliente();
try{
String sql = "select * from cliente where upper (nome) like '"+pesquisa.toUpperCase()+"%'";
Connection conn = ConnectionFcatory.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, nome);
ResultSet res = stmt.executeQuery();
if (res.next()){
cliente.setCodigo(res.getInt("CODIGO"));
cliente.setNome(res.getString("NOME"));
cliente.setCpf(res.getString("CPF"));
}
stmt.close();
res.close();
conn.commit();
} catch (SQLException e){
e.printStackTrace();
}
return cliente;
}
se está gerando erro por favor, poste o mesmo
E sobre o seu pesquisar por nome, o % ao fim indica que ele pode terminar com qualquer coisa mas o nome deve iniciar com o que foi passado, é isso mesmo ?
[code]
public static Cliente pesquisar (String nome,String pesquisa) {
Cliente cliente = new Cliente();
try{
String sql = “select * from cliente where upper (nome) like '”+pesquisa.toUpperCase()+"%’";
Connection conn = ConnectionFcatory.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, nome); // <------- Aqui você ta tentando setar como parametro (1) algo que não existe… não tem nenhum ? no teu select
ResultSet res = stmt.executeQuery();
if (res.next()){
cliente.setCodigo(res.getInt(“CODIGO”));
cliente.setNome(res.getString(“NOME”));
cliente.setCpf(res.getString(“CPF”));
Antes de retornar o objeto cliente dá um System.out.prinln() em todos os parametros utilizados em seu grid no Flex.
Caso esteja imprimindo corretamente, o seu problema pode estar na camada Flex mesmo, caso contrário, veja que valor está chegando ao seu método e testa o mesmo SQL em um Cliente de banco de dados.