Pessoal, estou com um probleminha aqui, no inicio achei que seria um problema pequeno mas já está me tomando muito tempo. Detalhe: Sou iniciante.
O problema é o seguinte: eu tenho uma tela, nessa tela tem um botão salvar, esse save cria uma tabela temporária e joga no banco de dados.
Com esse código consigo ver quantas linhas foram lidas.
private void salvar() {
criarTempExcel(rows);
rows.forEach(row -> {
try {
if (row.getCell(0).getCellType().toString() != “BLANK”) {
List cells = (List) toList(row.cellIterator());
try {
ExcelLoadDao.getInstance().popularTemporaria(cells);
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
});
try {
ExcelLoadDao.getInstance().persistirTemp(
listaTabelas.get(cmbTabelas.getSelectionModel().getSelectedIndex()).getComplemento());
JOptionPane.showMessageDialog(null, rows.size() + " Linhas salvas");
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Erro ao salvar carga: " + e.getMessage());
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Erro ao salvar carga: " + e.getMessage());
}
Porem, minha real necessidade é saber quantas linhas foram salvas e jogadas la no banco de dados.
Existem algumas linhas que não estão sendo salvas, pois o código não lê algumas linhas por um motivo que não vem ao caso. Mas preciso mostrar para o usuário quantas linhas foram salvas.
Fazer um select count ja nao atende?
Atende sim… e é exatamente isso que eu quero, POREM eu quero mostrar essa mensagem para o usuário. Pra que ele saiba que nem todas as linhas foram salvas, entende?
Qual exatamente sua dúvida nesse momento? Em como exibir uma mensagem na tela ou em como fazer um select count no banco via SQL?
preciso exibir uma mensagem na tela, com os dados que o select count me traz. BEM RESUMIDO é isso. Ou seja… o java vai jogar a planilha numa tabela la no banco de dados, mas isso não vai acontecer com todas as linhas, então se a planilha tem 10 linhas e só foram para o banco 5 linhas, quero trazer essa mensagem de volta para o usuário. Foram salvas 5 linhas
int conta = 0;
@FXML
private void salvar() {
criarTempExcel(rows);
rows.forEach(row -> {
try {
if (row.getCell(0).getCellType().toString() != "BLANK") {
List<Cell> cells = (List<Cell>) toList(row.cellIterator());
try {
ExcelLoadDao.getInstance().popularTemporaria(cells);
conta ++;
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
});
try {
ExcelLoadDao.getInstance().persistirTemp(
listaTabelas.get(cmbTabelas.getSelectionModel().getSelectedIndex()).getComplemento());
JOptionPane.showMessageDialog(null, conta + " Linhas salvas" );
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Erro ao salvar carga: " + e.getMessage());
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Erro ao salvar carga: " + e.getMessage());
}
listViewExcel.getItems().clear();
btnSalvar.setDisable(true);
}
consegui solucionar
agora a variavel conta recebe um contador sempre que passa pelo for, e aí mostra pro usuário apenas as linhas salvas