使用自动编号字段插入到 Access table
Inserting into an Access table with an AutoNumber field
我在 Java 中有一项作业需要更新 MS Access 数据库。数据库有六列,其中一列是 ID 列,它是一个自动编号。我已经为五个字段编写了这样的更新语句:
resultSet.beforeFirst();
if(resultSet.next()) {
resultSet.moveToInsertRow();
resultSet.updateString(1, FirstNameTextField.getText());
resultSet.updateString(2, LastNameTextField.getText());
resultSet.updateString(3, SignUpUsernameTextField.getText());
resultSet.updateString(4, EmailTextField.getText());
resultSet.updateString(5, SignUpPasswordField.getText());
**Here should be the statement that updates the 6th field**;
resultSet.insertRow();
即使它是一个自动数字字段,我也必须写一些东西来更新它或 resultSet.insert();不会工作并抛出异常?任何帮助表示赞赏。谢谢
我刚刚针对 table 使用名为 "Id" 的自动编号字段测试了以下代码,并且 UCanAccess 正确插入了新行
String connStr = "jdbc:ucanaccess://C:/Users/Public/mdbTest.mdb";
try (Connection conn = DriverManager.getConnection(connStr)) {
try (Statement s = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE)) {
ResultSet rs = s.executeQuery("SELECT Id, Field1, Field2 FROM ucatest");
rs.moveToInsertRow();
rs.updateInt("Id", 0);
rs.updateString("Field1", "newvalue1");
rs.updateString("Field2", "newvalue2");
rs.insertRow();
}
}
提供给 updateInt()
的实际值并不重要;执行 insertRow()
时分配下一个可用的自动编号值。
有关使用 UCanAccess 的详细信息,请参阅
Manipulating an Access database from Java without ODBC
我在 Java 中有一项作业需要更新 MS Access 数据库。数据库有六列,其中一列是 ID 列,它是一个自动编号。我已经为五个字段编写了这样的更新语句:
resultSet.beforeFirst();
if(resultSet.next()) {
resultSet.moveToInsertRow();
resultSet.updateString(1, FirstNameTextField.getText());
resultSet.updateString(2, LastNameTextField.getText());
resultSet.updateString(3, SignUpUsernameTextField.getText());
resultSet.updateString(4, EmailTextField.getText());
resultSet.updateString(5, SignUpPasswordField.getText());
**Here should be the statement that updates the 6th field**;
resultSet.insertRow();
即使它是一个自动数字字段,我也必须写一些东西来更新它或 resultSet.insert();不会工作并抛出异常?任何帮助表示赞赏。谢谢
我刚刚针对 table 使用名为 "Id" 的自动编号字段测试了以下代码,并且 UCanAccess 正确插入了新行
String connStr = "jdbc:ucanaccess://C:/Users/Public/mdbTest.mdb";
try (Connection conn = DriverManager.getConnection(connStr)) {
try (Statement s = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE)) {
ResultSet rs = s.executeQuery("SELECT Id, Field1, Field2 FROM ucatest");
rs.moveToInsertRow();
rs.updateInt("Id", 0);
rs.updateString("Field1", "newvalue1");
rs.updateString("Field2", "newvalue2");
rs.insertRow();
}
}
提供给 updateInt()
的实际值并不重要;执行 insertRow()
时分配下一个可用的自动编号值。
有关使用 UCanAccess 的详细信息,请参阅
Manipulating an Access database from Java without ODBC