Insere, mas não atualiza[MySQLPool]

4 respostas
Ironlynx
Tô usando c3P0, e toda inserção que eu faço no BD, confirma, recebo tela de confirmação e tudo, mas não atualiza o meu script mysql.Isso é problemas com o commit???Meu Insert:
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!!!
	}

4 Respostas

akumaldo

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??

Ironlynx

Ela atualiza logicamente, mas não realmente(“fisicamente”) no script.sql…
Achei que fosse problemas de commit mas o Pool providencia isso para mim …

louds

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.

Ironlynx

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???

Criado 21 de julho de 2006
Ultima resposta 22 de jul. de 2006
Respostas 4
Participantes 3