Exibir linhas salvas JavaFX com Banco de dados

7 respostas Resolvido
javafxxlsxsql
R

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.

7 Respostas

J

Fazer um select count ja nao atende?

R

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?

J

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?

R

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

J

Pesquisa sobre Alert. Exemplo: http://aprendendo-javafx.blogspot.com/2015/03/as-janelas-de-dialogos-do-javafx.html?m=1

R

Farei isso

R
Solucao aceita

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

Criado 7 de agosto de 2020
Ultima resposta 7 de ago. de 2020
Respostas 7
Participantes 2