如何使用Java(NetBeans)编辑MS Access数据库
我正在尝试使用一些Java代码(运行NetBeans 7.2.1)编辑MS Access数据库。我设置了数据源,并使用ODBC工具将其链接到我的数据库ProjectDatabase,并将数据源命名为DB,然后运行以下代码: 导入java.sql.*; 公共类纽曼{如何使用Java(NetBeans)编辑MS Access数据库,java,database,ms-access,prepared-statement,Java,Database,Ms Access,Prepared Statement,我正在尝试使用一些Java代码(运行NetBeans 7.2.1)编辑MS Access数据库。我设置了数据源,并使用ODBC工具将其链接到我的数据库ProjectDatabase,并将数据源命名为DB,然后运行以下代码: 导入java.sql.*; 公共类纽曼{ public static void main(String[] args) { try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connec
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);
}
}
}
代码运行时没有错误,并返回“Row is added”(行已添加)消息。问题是,当我返回查看数据库时,更改没有生效。我用一个用于删除数据的代码尝试了此操作,但也没有效果。有人遇到过此问题并知道如何解决它吗
我运行的是64位Windows 7、64位Microsoft Office和所有64位驱动程序,我在网络搜索中找不到任何关于这个问题的信息
提前感谢您的帮助=)首先,您没有关闭连接,因此这是一个问题。请将代码更改为:
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
这将把更改提交给access数据库,所以现在您应该能够在MS access中看到数据
阅读此处以了解有关的最佳实践的更多信息检查在executeUpdate()语句之后通过打印i添加了多少行它仍将自动提交,是否同意?@SudhanshuUmalkar,是的,但对于MS Access,手动提交总是更好