执行sqlite statement.executeBatch(),给出致命错误“EXCEPTION_ACCESS_VIOLATION”

时间:2010-02-25 13:39:19

标签: sqlite

我正在使用sqlite,在使用Statement.executeBatch()时,jvm崩溃并发出以下致命错误,使用PreparedStatement.executeBatch()时没有问题。 我已经从数据库中的每个更新创建了单独的连接和Statement对象。错误是......

Java运行时环境检测到致命错误:

EXCEPTION_ACCESS_VIOLATION(0xc0000005)在pc = 0x6d8fde5c,pid = 1980,tid = 3416

JRE版本:6.0_16-b01

Java VM:Java HotSpot(TM)客户端VM(14.2-b01混合模式,共享windows-x86)

有问题的框架:

V [jvm.dll + 0xfde5c]

如果您想提交错误报告,请访问:

http://java.sun.com/webapps/bugreport/crash.jsp

插入方法是......

private void runInsert(int records){   语句stmt = null;   尝试{    connection = DriverManager      .getConnection( “JDBC:源码:jdbcbatch.db”);    connection.setAutoCommit(假);    stmt = connection.createStatement();    for(int i = 0; i< records; i ++){     stmt.addBatch(“插入客户值(”+ i +“,”vijith_“)       + i +“\”,“10楼kaushik nagar serverspace_”+ i       +“\”,“+ i       +“,”11楼kaushik nagar serverspace_“+ i       +“\”)“);

//执行INSERT批处理    sDate = System.currentTimeMillis();    eDate = 0L;    System.out.println(“INSERT从”+ sDate开始);    int [] recordsInserted = stmt.executeBatch();    eDate = System.currentTimeMillis();    milli =(eDate - sDate);    System.out.println(“INSERT结束于”+ eDate);    System.out.println(“INSERT Time Milliseconds =”+ milli      +“in Seconds =”+ milli / 1000);    processTime.put(“INSERT”,milli);    if(recordsInserted.length!= records){     connection.rollback();    }    connection.commit();   } catch(SQLException e){    e.printStackTrace();    通信System.err.println(e.getMessage());   } finally {    尝试{     if(stmt!= null){      stmt.close();     }     if(connection!= null){      connection.close()时;     }    } catch(SQLException e){     通信System.err.println(E);    }   }  }

有人可以调查我的问题,如果你发现任何有用的信息,请转发给我。 提前谢谢。

B中。帕特尔

0 个答案:

没有答案