Я пытаюсь обновить таблицу до определенной строки путем фильтрации по идентификатору, и пока я пытаюсь выполнить запрос с Java, он не сохраняется в документе базы данных.
Если я запускаю запрос, исключений нет, и он выполняется так, как если бы он был выполнен успешно. откройте базу данных с помощью MS Access, она не была изменена, и если я перезапущу программу Java, изменения не будут внесены.
Класс базы данных
public class NHRPGDatabase {
static Connection connection;
public Connection openConnection() throws SQLException {
String url = "jdbc:ucanaccess://NHRPGBD.accdb";
return DriverManager.getConnection(url);
}
public void closeConnection(Connection connection) throws SQLException {
connection.close();
}}
Код запроса
public boolean updateName(int id, String name) throws SQLException {
Connection con = db.openConnection();
con.setAutoCommit(true);
PreparedStatement update = con.prepareStatement("UPDATE Mi_Cuenta SET HabboNombre=? WHERE Id=?");
update.setString(1, name);
update.setInt(2, id);
int result = update.executeUpdate();
db.closeConnection(con);
if (result == 1) {
return true;
} else {
return false;
}
}
Редактировать: до сих пор не знаю, почему не работает, если я делаю обновление в новой базе данных MS Access, она действительно работает. Похоже, что база данных, которую я пытаюсь обновить в своей версии файла db, — это V2010 [VERSION_14], а та, которую я создал, — это 2007 VER 12, я не знаю, поможет ли это каким-либо образом.
@June7 Нет, я проверил, и изменения, которые должны происходить, не сохраняются в базе данных MS Access.
Хорошо, я собираюсь ответить себе, я узнаю, почему не работает, в моей таблице MS Access (где я пытаюсь сделать обновление) у меня есть строка изображения (объект Ole), где у меня есть изображения (растровые изображения ), я удалил растровые изображения, и теперь это работает.
Если данные возвращаются в SELECT, то они должны быть где-то в таблице. Есть 2 файла?