esse método é o q chama a classe de negocio pro negocio chamar o dao…
e eu chamo esse método no form e ñ no action…
private boolean gravarLibVeiculo(Tbl_Usuario u){
try{
synchronized (this) {
Commav35 c35 = new Commav35();
int dt = Integer.valueOf(dtCad.substring(6, 10)+dtCad.substring(3, 5)+dtCad.substring(0, 2));
c35.setData(dt);
c35.setUnidade(Integer.valueOf(u.getUnidade()));
c35.setDescricao(descricao);
Date dt1 = new Date();
String hr = formataHora.format(dt1);
if((hr.substring(1,2)).equals(":")){
hr = "0"+hr;
}
c35.setHora(hr);
c35.setJustificativa(justificativa.trim());
if(pernoite == null){ //ñ é pernoite
c35.setPernoite("N");
c35.setAutorizada("S");//Aprovada
}
else{
c35.setPernoite("S");
c35.setAutorizada("N");//Não Aprovada
}
String mot[] = motorista.split(" - ");
c35.setMotorista(mot[0]);
String veic[] = veiculo.split(" - ");
c35.setPlaca(veic[1]);
c35.setRespMov(u.getMatricula());
LibVeiculoNegocio lvn = new LibVeiculoNegocio();
if(!lvn.verificaLiberacaoVeiculoEmAberto(c35.getPlaca())){ //ñ existe liberação da placa x em Aberto
lvn.gravarLibVeiculo(c35);
return true;
}else//existe liberação do veículo em aberto
return true; //usuário clicou duas vezes no btn de gravarliberação no mesmo momento
}
}catch(Exception e){
log.error("LibVeiculoForm gravarLibVeiculo getMessage: "+e.getMessage());
return false;
}
}
e o método do dao que faz a inserção é…
public boolean gravarLibVeiculo(Commav35 c35) throws Exception{
synchronized (this) {
Connection conn = null;
PreparedStatement p = null;
try{
StringBuffer sql = new StringBuffer();
sql.append("INSERT INTO BASREBIC.COMMAV35 (CODIGO, PLACA, MOTORISTA, JUSTIFICATIVA, ");
sql.append("DESCRICAO, DATA, HORA, RESPMOV, UNIDADE, STATUSLIB, PERNOITE, AUTORIZADA) VALUES ( ");
sql.append("(SELECT (NEXT VALUE FOR BASREBIC.COMMAV35_SEQ) VALOR FROM SYSIBM.SYSDUMMY1), ");
sql.append("?, ?, (SELECT C36.CODIGO FROM BASREBIC.COMMAV36 C36 WHERE C36.MOTIVO = ? ), ");
sql.append("?, ?, ?, ?, ?, 'A', ?, ?)");
Db2400Connection con = new Db2400Connection();
conn = con.getConnection();
conn.setAutoCommit(false);
p = conn.prepareStatement(sql.toString());
p.setString(1, c35.getPlaca());
p.setString(2, c35.getMotorista());
p.setString(3, c35.getJustificativa());
p.setString(4, c35.getDescricao());
p.setInt(5, c35.getData());
p.setString(6, c35.getHora());
p.setString(7, c35.getRespMov());
p.setInt(8, c35.getUnidade());
p.setString(9, c35.getPernoite());
p.setString(10, c35.getAutorizada());
if(!verificaLiberacaoVeiculoEmAberto(c35.getPlaca())){//ñ existe liberação da placa x em Aberto
p.execute();
conn.commit();
return true;
}
else{//existe liberação da placa x em aberto, seja possível q foi gerado dois submit para repetir a gravação
return false;
}
}
catch(Exception e){
log.info("DB2400LibVeiculoDAO gravarLibVeiculo getMessage(): "+e.getMessage());
conn.rollback();
return false;
}finally {
if(p != null)p.close();
if(conn != null)conn.close();
}
}
}