如何修复';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之后连接对象是否可用请发布完整的异常堆栈跟踪。