如何修复';java.sql.SQLException:数据库已关闭';问题

如何修复';java.sql.SQLException:数据库已关闭';问题,java,jdbc,Java,Jdbc,我的代码说没有错误,但是当我运行程序时,它会说数据库已经关闭 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:\\C

我的代码说没有错误,但是当我运行程序时,它会说数据库已经关闭

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:数据库已关闭

请确保在DriverManager.getConnection()中传递了正确的URL

如果URL是正确的,那么请确保您已经在该位置创建了数据库


似乎找不到数据库。

您的SQLite JDBC URL需要指向一个文件,但它指向的是一个目录

我复制了您试图打开SQLite数据库但更改连接URL以指向我的计算机上的目录的错误。我无法解释为什么数据库关闭时会出现错误:我认为这是驱动程序中的一个错误

您需要将URL改为指向文件的点,例如:

        String url = "jdbc:sqlite:C:\\CmpSci 221\\Lab 13\\src\\main\\resources\\your_database.db";

可能的重复:@MustafaÇil不是该问题的重复-OP没有在此处使用try with resource,这不可能是问题
String url=“jdbc:sqlite:C://CmpSci 221/Lab 13/src/main/resources.db”。添加调试器并验证getConnection Line之后连接对象是否可用请发布完整的异常堆栈跟踪。