Então pessoal, estou com uma duvida.
Tenho um código com a funcionalidade de pesquisa com o seguinte:
Tenho 4 textField 1 jList e 2jRadioButton, onde gostaria que o usuário escolhesse o que ele deseja filtrar, e caso deixe em branco um campo este mesmo campo seja desconsiderado na pesquisa.
Ai é que esta o problema pq meu código só funciona se o usuário escrever em todos os campos, e caso ele deixe um campo vazio dá erro
No caso o meu código esta assim:
if(!abrirConexao()) { fecharObjetos(); return; }
String str = "";
jTextArea1.setText("");
PreparedStatement pstm = null;
StringBuffer sql = new StringBuffer();
sql.append("SELECT * FROM tb_paciente, tb_registrodoencas");
try {
if(txtNome!= null){
sql.append(" WHERE nomePaciente LIKE '" + txtNome.getText() + "%'") ;
}
if(txtSigla!= null){
sql.append(" AND siglaDoenca = '" + txtSigla.getText() + "'");
}
if(txtMin!=null && txtMax!=null){
sql.append(" AND idade BETWEEN " + txtMin.getText() + " AND " + txtMax.getText());
}
if(jFeminino.isSelected()){
sql.append(" AND sexo = 'F'");
}
if(jMasculino.isSelected()){
sql.append(" AND sexo = 'M'");
}
if(jList1.getSelectedValue()!= null){
sql.append( " AND estadoResidencia = '" + jList1.getSelectedValue() + "'");
}
pstm = con.prepareStatement(sql.toString());
rs = pstm.executeQuery();
while(rs.next()) {
String cpf = rs.getString("CPF");
String nome = rs.getString("nomePaciente");
String estado = rs.getString("estadoResidencia");
int idade = rs.getInt("idade");
String sexo = rs.getString("sexo");
str += "CPF: " + cpf + " | Nome: " + nome + " | Estado: " + estado + " | Idade: " + idade + " | Sexo: " + sexo + "\n";
}
jTextArea1.setText(str);
}