问题描述:
使用jdbc-odbc连接数据库成功后,向表中插入数据。操作无异常抛出,但数据没有进入到数据库表中,但将插入操作执行完成后,使用Thread.sleep休息大于等于500毫秒【低于这个值也无法将数据入库】后,数据可以入库。
运行环境:
Eclipse SDK:Version: 3.1.1
JDK:1.4.2, 1.5, 1.6
Access:2003
源程序:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class accessTest {
public static void main(String[] args) throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:common", "", "");
Statement sql = conn.createStatement();
String sqlSentence = "INSERT into PROXY(id)" + "values(92);";
sql.execute(sqlSentence);
Thread.sleep(500);
System.out.println("finished!");
}
}问题分析:
怀疑是Access数据库入库操作速度较慢,而虚拟机执行结束太快导致数据的无法入库问题。请大家帮助分析一下问题可能出现的原因!
使用jdbc-odbc连接数据库成功后,向表中插入数据。操作无异常抛出,但数据没有进入到数据库表中,但将插入操作执行完成后,使用Thread.sleep休息大于等于500毫秒【低于这个值也无法将数据入库】后,数据可以入库。
运行环境:
Eclipse SDK:Version: 3.1.1
JDK:1.4.2, 1.5, 1.6
Access:2003
源程序:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class accessTest {
public static void main(String[] args) throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:common", "", "");
Statement sql = conn.createStatement();
String sqlSentence = "INSERT into PROXY(id)" + "values(92);";
sql.execute(sqlSentence);
Thread.sleep(500);
System.out.println("finished!");
}
}问题分析:
怀疑是Access数据库入库操作速度较慢,而虚拟机执行结束太快导致数据的无法入库问题。请大家帮助分析一下问题可能出现的原因!
"");
Statement sql = conn.createStatement();
String sqlSentence = "INSERT into PROXY(id)" + "values(92);";
sql.execute(sqlSentence);
sql.close(); // 增加这2句看看
conn.close();
import java.sql.DriverManager;
import java.sql.Statement;
import sun.jdbc.odbc.JdbcOdbcDriver;public class accessTest {
public static void main(String[] args) throws Exception {
DriverManager.registerDriver(new JdbcOdbcDriver());
Connection conn = DriverManager.getConnection("jdbc:odbc:common", "", "");
Statement sql = conn.createStatement();
String sqlSentence = "INSERT into PROXY(id)" + "values(92);";
sql.execute(sqlSentence);
System.out.println("finished!");
}
} 试试..应该就对了.
然后 rs。close()
sql。close()
一开始设置conn.setAutoCommit(false);
结束时conn.commit()