我 在执行 
         conn = DBUtil.getConnection();
         stmt = conn.createStatement();
 stmt.execute(sql);
时候为什么要等好久才会往数据库里插入一条记录?(根据字段里面插入的一个字段看出)
我改成         conn = DBUtil.getConnection();
          conn.setAutoCommit(false)
         stmt = conn.createStatement();
 stmt.execute(sql);
         conn.commit();执行完程序的时候数据库里面就有这条记录了。 这个extcute 执行之后数据库还有延迟执行的可能?
感觉有点诡异,高手给解答一下吧。

解决方案 »

  1.   

    conn.setAutoCommit(false) 
    如果你不写是默认提交的你在这里写是手动提交属于事物问题貌似不存在你说的延迟问题
      

  2.   

    你先从你执行java的机器上发一条语句到数据库看执行时间,要么是数据库本身执行sql慢,要么就是网络传输慢,与java没关系
      

  3.   

    你说的这个插入一条数据到数据库是与事务处理有关的,前面你说的那个是因为你没提交,也是就commit().
      

  4.   

    插入等操作用PreparedStatement ps = null,
    rs = conn.prepareStatement(sql)吧