Как исправить проблему 'java.sql.SQLException: база данных была закрыта' - PullRequest
0 голосов
/ 13 апреля 2019

Мой код говорит, что ошибок нет, но когда я запускаю программу, она говорит, что база данных закрыта.

public class main
{
public static void main(String[] args)
{
    //language=SQLite
    String sql = "SELECT * FROM titles WHERE title_id = ?";

    //Create Scanner

    try
    {
        String url = "jdbc:sqlite:C:\\CmpSci 221\\Lab 13\\src\\main\\resources";
        Connection connection = DriverManager.getConnection( url );

        PreparedStatement statement = connection.prepareStatement( sql );
        statement.setInt( 1,1);

        ResultSet rSet = statement.executeQuery();

        while( rSet.next() )
        {
            System.out.println( rSet.getString( "title" ) );
        }
    }
    catch ( SQLException e )
    {
        e.printStackTrace();
    }
}

}

Я ожидаю, что он выведет базу данных, с которой я работаю, но он просто выводит это сообщение об ошибке:

java.sql.SQLException: база данных была закрыта

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

Убедитесь, что вы передаете правильный URL-адрес внутри DriverManager.getConnection ()

Если URL правильный, убедитесь, что вы создали базу данных в этом месте.

Кажется, база данных не найдена.

0 голосов
/ 14 апреля 2019

Ваш URL-адрес SQLite JDBC должен указывать на файл, но вместо этого он указывает на каталог.

Я воспроизвел вашу ошибку при попытке открыть базу данных SQLite, но изменил URL-адрес подключения, чтобы указать на каталогна моей машине.Я не могу сказать, почему вы получаете сообщение об ошибке закрытия базы данных: я бы посчитал это ошибкой в ​​драйвере.

Вместо этого вам нужно изменить URL-адрес на точку в файл, например:

        String url = "jdbc:sqlite:C:\\CmpSci 221\\Lab 13\\src\\main\\resources\\your_database.db";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...