Bom dia, estou fazendo uma tela básica para pesquisa de Ordem de Serviço, porém na hora que clico para executar, ele dá a exceção de For input String: “”, pensei varias vezes no que poderia ser mas não me vem na cabeça o que seja.
Clique do botão pesquisar:
try {
OrdemServico c = new OrdemServico();
NegocioOrdemServico dados = new NegocioOrdemServico();
c.setCod_os(Integer.parseInt(jTextFieldCodOSPesquisa.getText()));
this.ordser = dados.listar(c);
DefaultTableModel modelo = new DefaultTableModel();
String[] colunasDaTabela = {"Código", "Data da Emissão", "Veículo", "Serviço"};
modelo.setColumnIdentifiers(colunasDaTabela);
for (OrdemServico cl : ordser) {
Object[] linhas = {cl.getCod_os(), cl.getData_emissao(), cl.getVeiculo().getPlaca().trim(), cl.getServico()};
modelo.addRow(linhas);
}
jTable1.setModel(modelo);
} catch (Exception ex) {
JOptionPane.showMessageDialog(rootPane, ex.getMessage());
}
}
Meus métodos para pode realizar o listamento:
Validações dos dados que podem ser enviados:
@Override
public ArrayList<OrdemServico> listar(OrdemServico filtro) throws Exception {
if (filtro.getVeiculo().getPlaca().trim().length() > 7) {
throw new Exception("Por favor, informe uma placa válida");
}
if (filtro.getVeiculo().getPlaca() == null) {
throw new Exception("Informe uma placa válida");
}
if (filtro.getVeiculo().getPlaca().trim().length() <= 0) {
throw new Exception("Informe uma placa válida");
}
return dados.listar(filtro);
}
Comando para o Banco de Dados:
@Override
public ArrayList<OrdemServico> listar(OrdemServico filtro) throws Exception {
int pos = 1;
ArrayList<OrdemServico> retorno = new ArrayList<>();
String sql = " SELECT os.cod_os, os.data_emissao, os.placa, os.servico FROM OrdemServico AS os ";
if (filtro.getCod_os() != 0) {
sql += " WHERE cod_os = ? ";
}
if (filtro.getVeiculo().getPlaca().trim().length() > 6) {
sql += " WHERE os.placa LIKE ? ";
}
PreparedStatement preparedStatement = super.conectar().prepareStatement(sql);
if (filtro.getCod_os() != 0) {
preparedStatement.setInt(pos, filtro.getCod_os());
pos++;
}
if (filtro.getVeiculo().getPlaca().trim().length() > 6) {
preparedStatement.setString(pos, filtro.getVeiculo().getPlaca());
pos++;
}
ResultSet rs = preparedStatement.executeQuery();
while (rs.next()) {
OrdemServico os = new OrdemServico();
os.setCod_os(rs.getInt("cod_os"));
os.setData_emissao(rs.getDate("data_emissao"));
os.getVeiculo().setPlaca(rs.getString("placa"));
os.setServico(rs.getString("servico"));
retorno.add(os);
}
return retorno;
}