Boa tarde galera,
Gostaria de tirar uma duvida com vocês esqueci como que eu faço pra confirmar se o execute foi true ou false eu tentei
if(stmtInsertItem.execute()){
condicao = true;
}
mas nao deu certo eu esqueci msm se alguem puder me ajudar
Boa tarde galera,
Gostaria de tirar uma duvida com vocês esqueci como que eu faço pra confirmar se o execute foi true ou false eu tentei
if(stmtInsertItem.execute()){
condicao = true;
}
mas nao deu certo eu esqueci msm se alguem puder me ajudar
E ai blz, geralmente quando eu vou executar um comando no banco eu uso executeUpdate(), porque você não usa esse? Ele retorna as linhas afetadas…
Abraços…
Você quer saber se retornou resultados, é isso?
Um artigo bom para você ler: http://guj.com.br/article.show.logic?id=7
Abraços.
é porque eu esqueci mesmo e como eu to mechendo com access o retorno dele nao é tão bom portanto estou na duvida do seguinte como eu vo fazer um boolean pra informar se realmente inseriu ou nao vou mandar meu metodo insert
public void insertServicos() throws SQLException {
ArrayList<ServicosContratados> servico = obterServicos();
Connection con = PoolConexoes.getInstance().obterConexao();
int linha =1;
try {
for (ServicosContratados servicosC : servico) {
PreparedStatement stmtInsertItem = con
.prepareStatement("INSERT INTO ServicosContratados ( CRG, PERIODO_I, PERIODO_F, TRECHO, TAREFA, CONTRATADO, PRODUCAO, REFERENCIA ) values (?, ?, ?, ?, ?, ?, ?, ?)");
stmtInsertItem.setString(1, servicosC.getCRG());
stmtInsertItem.setString(2, servicosC.getPERIODO_I());
stmtInsertItem.setString(3, servicosC.getPERIODO_F());
stmtInsertItem.setString(4, servicosC.getTRECHO());
stmtInsertItem.setString(5, servicosC.getTAREFA());
stmtInsertItem.setString(6, servicosC.getCONTRATADO());
stmtInsertItem.setString(7, servicosC.getPRODUCAO());
stmtInsertItem.setString(8, servicosC.getExpr1());
stmtInsertItem.execute();
stmtInsertItem.close();
linha++;
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Não foi possivel inserir a linha : " + linha +" motivo :"+ e);
} finally {
PoolConexoes.getInstance().liberarConexao(con);
}
JOptionPane.showMessageDialog(null,
"Registros de serviços contratados inserido com sucesso");
}
}
é porque eu esqueci mesmo e como eu to mechendo com access o retorno dele nao é tão bom portanto estou na duvida do seguinte como eu vo fazer um boolean pra informar se realmente inseriu ou nao vou mandar meu metodo insertpublic void insertServicos() throws SQLException { ArrayList<ServicosContratados> servico = obterServicos(); Connection con = PoolConexoes.getInstance().obterConexao(); int linha =1; try { for (ServicosContratados servicosC : servico) { PreparedStatement stmtInsertItem = con .prepareStatement("INSERT INTO ServicosContratados ( CRG, PERIODO_I, PERIODO_F, TRECHO, TAREFA, CONTRATADO, PRODUCAO, REFERENCIA ) values (?, ?, ?, ?, ?, ?, ?, ?)"); stmtInsertItem.setString(1, servicosC.getCRG()); stmtInsertItem.setString(2, servicosC.getPERIODO_I()); stmtInsertItem.setString(3, servicosC.getPERIODO_F()); stmtInsertItem.setString(4, servicosC.getTRECHO()); stmtInsertItem.setString(5, servicosC.getTAREFA()); stmtInsertItem.setString(6, servicosC.getCONTRATADO()); stmtInsertItem.setString(7, servicosC.getPRODUCAO()); stmtInsertItem.setString(8, servicosC.getExpr1()); stmtInsertItem.execute(); stmtInsertItem.close(); linha++; } } catch (Exception e) { JOptionPane.showMessageDialog(null, "Não foi possivel inserir a linha : " + linha +" motivo :"+ e); } finally { PoolConexoes.getInstance().liberarConexao(con); } JOptionPane.showMessageDialog(null, "Registros de serviços contratados inserido com sucesso"); } }
int x
x = stmtInsertItem.executeUpdate();
System.out.println("Número de linhas afetadas " + x);
Tenta assim....
Cara pelo que eu vi o stmtInsertItem.execute(); retorna true ou false, eu gostaria de saber esse retorno ja tentei comocar boolean condicao = stmtInsertItem.execute(); mas nao deu certo
Vc tentou da forma que te falei acima?
aquilo nao me atende eu preciso fazer um teste pra se foi boolean ou nao o que vc me falou vai falar as linhas
Cara se retornar as linhas quer dizer que o registro foi atualizado sacou…
faz assim
if (x >=1){
System.out.println("Verdeiro");
}
else {
System.out.println("Falso");
}
Bem se não for isso acho que eu não entendi o que vc quer…
O executeUpdate() não vai trazer o número de linha afetadas ou (0) se não foi feito o update, como o lucas demonstrou.
O execute() como retorno booleano deveria está funcionando, mas faz dessa maneira:
boolean blUpdate = true;
try {
stmtInsertItem.execute()
} catch (SQLException ex) {
blUpdate = false;
}
simples.