1

我正在尝试使用一些 Java 代码(运行 NetBeans 7.2.1)编辑 MS Access 数据库。我设置数据源并使用 ODBC 工具将其链接到我的数据库 ProjectDatabase 并命名数据源 DB,然后运行以下代码:

导入java.sql.*;公共类NewMain {

public static void main(String[] args) {
    try{
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       Connection con = DriverManager.getConnection("jdbc:odbc:DB");
       Statement st=con.createStatement();
       String name="roseindia";
       String address="delhi";
       int i=st.executeUpdate("insert into user(name,address)      values('"+name+"','"+address+"')");
       System.out.println("Row is added");
       }
    catch(Exception e){
        System.out.println(e);
    }
}
} 

代码运行没有错误,并返回“已添加行”消息。问题是当我返回查看数据库时,更改尚未生效。我已经尝试使用删除数据的代码进行此操作,但也没有效果。有没有人遇到过这个问题并且知道如何解决?

我正在运行 Windows 7 64 位、Microsoft Office 64 位以及所有 64 位驱动程序,我无法通过网络搜索找到任何提及此问题的内容。

在此先感谢您的帮助=)

4

1 回答 1

2

首先,您没有关闭连接,所以这是一个问题。还将您的代码更改为:

   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   Connection con = DriverManager.getConnection("jdbc:odbc:DB");
   Statement st=con.createStatement();
   con.setAutoCommit(false); //Notice change here
   String name="roseindia";
   String address="delhi";
   int i=st.executeUpdate("insert into user(name,address)      values('"+name+"','"+address+"')");
   con.commit(); //Notice change here
   System.out.println("Row is added");
   con.close(); //Notice change here

这将提交对访问数据库的更改,因此现在您应该能够在 MS Access 中看到数据。

阅读此处以了解有关关闭和释放 JDBC 资源的最佳实践的更多信息

于 2013-02-22T10:08:40.033 回答