无法让JDBC在Eclipse中永久更新我的数据库文件

无法让JDBC在Eclipse中永久更新我的数据库文件,jdbc,ucanaccess,Jdbc,Ucanaccess,我已经创建了一个数据库文件“accounts.accdb”,并且正在使用Eclipse中的UCanAccess JDBC驱动程序来访问它。我可以很好地访问它,并使用我的服务器应用程序更新它,但当我关闭服务器应用程序时,数据库文件的内容将返回到它们的初始值。下面是我的代码,我尝试过使用commit(),但似乎没有任何区别 Connection conn=DriverManager.getConnection("jdbc:ucanaccess://accounts.accdb"); //STEP

我已经创建了一个数据库文件“accounts.accdb”,并且正在使用Eclipse中的UCanAccess JDBC驱动程序来访问它。我可以很好地访问它,并使用我的服务器应用程序更新它,但当我关闭服务器应用程序时,数据库文件的内容将返回到它们的初始值。下面是我的代码,我尝试过使用
commit()
,但似乎没有任何区别

Connection conn=DriverManager.getConnection("jdbc:ucanaccess://accounts.accdb");

//STEP 4: Set auto commit as false.
conn.setAutoCommit(false);

//STEP 5: Execute a query to create statment with
// required arguments for RS example.
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
           ResultSet.CONCUR_UPDATABLE);



// Step 6: Execute a SQL SELECT Update.
String sql = "update bankAccounts set " + field + "= " + newValue + " where id = " + id;
System.out.println("update command: " + sql);
stmt.executeUpdate(sql);
System.out.println("Database is updated!!!!");

//STEP 7: Commit data here.
conn.commit();

//STEP 8: Clean-up environment
stmt.close();
conn.close();

executeUpdate
返回一个
int
值,指示受影响的行数。这个值大于零吗?是的,它返回一个,这是我所期望的,因为它只更新一行try
System.out.println(((UcanaccessConnection)conn.getDbIO().getFile().getAbsolutePath())
查看UCanAccess正在更新的.accdb文件是否与您认为它正在更新的文件相同。您使用的UCanAccess版本是什么?什么是表bankAccounts结构(所有列类型)?我试图运行上面的print命令,但eclipse不知道什么是UcanaccessConnection,我应该用其他变量或对象替换它吗?我使用的UcanAccess版本是3.0.7,我认为所有列都应该是字符串类型