我编写了一个执行删除MS Access文件中重复项的查询的方法。在MS Access中运行时查询正常工作,但在通过Java运行时没有任何反应。其他查询使用相同的连接字符串。另一组眼睛可以看到导致这种情况发生的原因吗?
public static void delete_duplicates() throws Exception{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String sDBQ = "C:/AW.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sDBQ + ";DriverID=22;READONLY=true";
Connection conn = DriverManager.getConnection( database ,"","");;
Statement stmt = conn.createStatement();
String query = "DELETE "+
"FROM AW " +
"WHERE id not in (select min(id) from AW group by Symbol, Direction, START_DT, END_DT)";
System.out.println(query);
stmt.executeUpdate(query);
stmt.close();
}
答案 0 :(得分:5)
你这样连接:
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sDBQ + ";DriverID=22;READONLY=true";
您将属性READONLY
设置为true
,因此您无法修改数据库。