Olá, galerinha!
Tudo bem?
Seguinte, estou com uma pequena dúvida; espero que possam me dar uma força!
Tenho um método em minhas classes DAO chamado readByCriteria. Ele recebe um objeto de uma classe espefícica e realiza uma consulta sob essa, de acordo com os valores contidos no objeto.
Por exemplo, tenho a classe Usuario:
public class Usuario {
private Long id;
private String nome;
private String usuario;
private String senha;
}
O meu readByCriteria tá ficando assim:
public List<Usuario> readByCriteria ( Usuario objUsuario ) {
Connection connUsuario = ConnectionManager.getInstance().getConnection();
String commUsuario = "Select Usuario.* From Usuarios Usuario Where 1=1 ";
if ( objUsuario != null ) {
if ( !objUsuario.getNome.equals("") )
commUsuario += "And Upper(Usuario.Nome) Like '%" + objUsuario.getNome().toUpperCase() + "%'";
if ( !objUsuario.getUsuario.equals("") )
commUsuario += "And Upper(Usuario.Usuario) Like '%" + objUsuario.getUsuario().toUpperCase() + "%'";
}
commUsuario += " Order By Usuario.Nome";
PreparedStatement statementUsuario = connUsuario.prepareStatement( commUsuario );
// E por aí vai...
}
Percebam que eu faço a consulta somente por um dos campos!
Alguém tem alguma idéia de como posso modificar esse método, a fim de fazer com que minha consulta fique para pesquisar em todos os campos o mesmo texto digitado na caixa de texto?
Por exemplo, suponhamos que eu tenha estes dados:
ID Nome Usuario
1 José Mendes jmendes
2 João Alberto joaoalb
3 Maria Tereza mariat
4 Pedro Rodrigues pro
5 Thiago Motta thiago_motta
Se o usuário digitar “jo” na caixa de texto, quero que ele pesquisa tanto no campo ‘nome’ quanto no campo ‘usuario’.
Alguém tem idéia de como criar um método readByCriteria que use Joins, ou Unions?
Como eu faria para esse meu readByCriteria fique do modo que procuro?
Desde já, grato pela atenção, galera!
Abraços a todos!