падает база с различными ошибками

127
13 июня 2019, 15:10
import java.sql.*;
public class Bdate{
    String url = "jdbc:sqlite:d:/farcry/userDate.db";
    Connection con;
    ResultSet res;
    public void bd(String sql) throws SQLException {
        con = DriverManager.getConnection(url);
        con.createStatement().execute(sql);
    }
    public  void bs(String sql)throws SQLException{
        con = DriverManager.getConnection(url);
        res=con.createStatement().executeQuery(sql);
    }
}

проблема в следующем-мне нужно два метода один запрос в базу без возращения Resultset,второй с возвращением .оба эти метода постоянно используются и создается видимо несколько соnnection ,как пример вызываю 1й метод,2й ,потом 1й и база падает

org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked) at org.sqlite.core.DB.newSQLException(DB.java:941) at org.sqlite.core.DB.newSQLException(DB.java:953) at org.sqlite.core.DB.execute(DB.java:854) at org.sqlite.core.CoreStatement.exec(CoreStatement.java:80) at org.sqlite.jdbc3.JDBC3Statement.execute(JDBC3Statement.java:53) at Bdate.bd(Bdate.java:14) at BotStart.onUpdateReceived(BotStart.java:34) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at org.telegram.telegrambots.meta.generics.LongPollingBot.onUpdatesReceived(LongPollingBot.java:27) at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:305)

если прописать con.close в1 методе через 4-5 вызовов база опять падает

org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked) at org.sqlite.core.DB.newSQLException(DB.java:941) at org.sqlite.core.DB.newSQLException(DB.java:953) at org.sqlite.core.DB.execute(DB.java:854) at org.sqlite.core.CoreStatement.exec(CoreStatement.java:80) at org.sqlite.jdbc3.JDBC3Statement.execute(JDBC3Statement.java:53) at Bdate.bd(Bdate.java:14) at BotStart.onUpdateReceived(BotStart.java:34) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at org.telegram.telegrambots.meta.generics.LongPollingBot.onUpdatesReceived(LongPollingBot.java:27) at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:305)

если прописать con.close во 2 методе полчаем сразу после вызова 2 метода ошибку

java.sql.SQLException: The database has been closed at org.sqlite.core.NativeDB.throwex(NativeDB.java:478) at org.sqlite.core.NativeDB.column_text_utf8(Native Method) at org.sqlite.core.NativeDB.column_text(NativeDB.java:249) at org.sqlite.jdbc3.JDBC3ResultSet.getString(JDBC3ResultSet.java:444) at BotStart.onUpdateReceived(BotStart.java:66) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at org.telegram.telegrambots.meta.generics.LongPollingBot.onUpdatesReceived(LongPollingBot.java:27) at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:305)

как быть не знаю,гугл решения не работают

READ ALSO
Регистрация ресурсов и пакетов в Jersey

Регистрация ресурсов и пакетов в Jersey

Jersey который я использую, реализован на спецификации JAX-RS 2x

147
Ошибка FMXLLoader.load()

Ошибка FMXLLoader.load()

Пытаюсь запустить приложение JavaFX, ловлю exception in Application start methodЕсть подозрение, что проблемы в пути к файлу

161