Продолжает получать сообщение об ошибке: [SQLITE_BUSY] Файл базы данных заблокирован (база данных заблокирована) в Java.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Продолжает получать сообщение об ошибке: [SQLITE_BUSY] Файл базы данных заблокирован (база данных заблокирована) в Java.

Сообщение Anonymous »

Я продолжаю получать эту ошибку (Ошибка: org.sqlite.SQLiteException: [SQLITE_BUSY] Файл базы данных заблокирован (база данных заблокирована)) всякий раз, когда я пытаюсь проверить уникальность имени пользователя и впоследствии добавить его в свою базу данных. Я использую и должен использовать Java, JSP и JDBC.
Это код для моего подключения к базе данных и запросов:

Код: Выделить всё

public class UserDao {
private static Connection conn = null;
public static Connection connect() throws Exception {
if(conn == null) {
conn = (Connection) DriverManager.getConnection("jdbc:sqlite:c:/Users/ryo/database.db");
} else {
conn.close();
conn = (Connection) DriverManager.getConnection("jdbc:sqlite:c:/Users/ryo/database.db");
}
return conn;
}
private String table;

public UserDao(String table) {
this.table = table;
}

public User findUser(String username) throws SQLException {
PreparedStatement pStmt = conn.prepareStatement("SELECT * FROM " + table + " WHERE Username=?");
pStmt.setString(1, username);

try (
ResultSet rs = pStmt.executeQuery()) {

if(rs.next()) {
return new User(
rs.getString("Name"),
rs.getString("Username"),
rs.getString("Password"),
rs.getBoolean("Admin")
);
}
} catch (Exception e) {
System.out.println("ERROR FINDING USER");
e.printStackTrace();
return null;
}
return null;
}

public long addUser(User user, String password) throws SQLException {
PreparedStatement pStmt = conn.prepareStatement("INSERT INTO " + table + " (Username, Name, Password, Admin) VALUES(?,?,?,?)");
pStmt.setString(1, user.getUsername());
pStmt.setString(2, user.getName());
pStmt.setString(3, password);
pStmt.setBoolean(4, user.isAdmin());
int rowsAdded = pStmt.executeUpdate();
long allocatedId = 0L;
if (rowsAdded == 1) {
ResultSet rs = pStmt.getGeneratedKeys();
if(rs.next()) {
allocatedId = rs.getLong(1);
}
}
return allocatedId;
}

}
А это код для добавления и поиска пользователей:

Код: Выделить всё


[url=./login.html]

[/url]

[url=./signup.html]

[/url]


Если бы кто-нибудь мог подсказать, почему это не работает, я был бы очень признателен. Обратите внимание: все браузеры баз данных также закрыты.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/793 ... e-is-locke
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Python SQLite: база данных заблокирована
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Ошибка подключения Java JDBC ORA-28000: учетная запись заблокирована, но учетная запись БД не заблокирована
    Anonymous » » в форуме JAVA
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous
  • В Java JDBC Ошибка подключения ORA-28000: учетная запись заблокирована, но учетная запись DB не заблокирована
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Установите Java на Linux Busy Box Distro Arm32V7
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Ошибка базы данных в помещении «База данных заблокирован».
    Anonymous » » в форуме Android
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»