public int inserirRamoDeSeguro(ageris.negocio.RamoDeSeguro rds) throws Exception {
Connection conn = MySQLDAOFactory.retornarConexao();
PreparedStatement pstm = null;
ResultSet rset = null;
StringBuffer sql = null;
if(conn == null)
return 0;
try{
sql=new StringBuffer();
sql.append(" insert into ramoseg (id_tiposeg,inicio, impo_segurada, premio, id_seguradora, id_cobertura, corretagem, lmi, patrimonio_liq) values (?,?,?,?,?,?,?,?,?)");
pstm = conn.prepareStatement(sql.toString());
pstm.setInt(1, rds.getId_tiposeg());
pstm.setDate(2, new java.sql.Date(rds.getInicio().getTime()));
pstm.setString(3, rds.getImpo_segurada().toString());
pstm.setString(4, rds.getPremio().toString());
pstm.setInt(5,rds.getId_seguradora());
pstm.setInt(6,rds.getId_cobertura());
pstm.setInt(7, rds.getCorretagem());
pstm.setObject(8, rds.getLmi().toString());
pstm.setObject(9, rds.getPatrimonio_liq().toString());
pstm.executeUpdate();
pstm.close();
pstm = conn.prepareStatement("select last_insert_id() from ramoseg");
rset = pstm.executeQuery();
if (rset.next()) {
int id = rset.getInt(1);
rds.setId_empresa(id);
System.out.println("Inserção Realizada com Sucesso!!!");
return id;
}
}catch(SQLException sqle){
System.out.println("Não foi possivel inserir um Ramo de Seguro");
sqle.printStackTrace();
}finally{
MySQLDAOFactory.closePreparedStatement(pstm);
MySQLDAOFactory.closeConnection(conn);
MySQLDAOFactory.closeResultSet(rset);
}
return -1; //não deveria ocorrer!!!
}
Insere, mas não atualiza[MySQLPool]
4 Respostas
Espera…não entendi direito…
você não está conseguindo atualizar a tabela??ela não retorna o select atualizado com o novo “objeto” que você inseriu??
Ela atualiza logicamente, mas não realmente(“fisicamente”) no script.sql…
Achei que fosse problemas de commit mas o Pool providencia isso para mim …
O driver do mysql suporta logar os statements enviados. Onde ocorre o commit da tua transação? pq não tá no código que você mostrou.
Outra coisa, é normal uma transação enxergar as alterações que fez, mas o resto do mundo não.
Pergunta Newbassa em pools:
O c3P0 não comita automagicamente por mim? :oops:
O driver do mysql suporta logar os statements enviados.
Como vc loga eles?Usa o log4j?(Jah tô com medo dele depois dele me enviar um log de quase 28MB…)
Pergunta de quem quase não usa o Mysql:
Meu mysql é o 5.0.19 beta, uso o connector j 3.1.11. Eu não utilizo features avançadas(views, stored procedures…).Mesmo assim eu corro o risco de ter algum pau ou incompatibilidade e seria melhor usar o 5.0.2???