Cannot invoke "java.sql.Connection.prepareStatement(String)" because "con" is null
时间: 2023-12-25 21:49:29 浏览: 33
这个错误通常是因为你的代码中没有正确初始化数据库连接对象(`con`)。你需要先创建一个有效的连接对象,然后才能使用它来执行 SQL 语句。
你可以检查以下几个方面:
1. 确保你已经正确加载了 JDBC 驱动程序。例如,如果你在使用 MySQL 数据库,则需要使用 `Class.forName("com.mysql.jdbc.Driver")` 加载 MySQL 驱动程序。
2. 确认你的数据库连接参数正确无误。例如,如果你在连接 MySQL 数据库,则需要指定正确的数据库 URL、用户名和密码。
3. 确认你已经成功地连接到数据库。可以使用 `con.isValid(timeout)` 方法检查连接是否有效。如果返回值为 `true`,则说明连接是有效的。
如果你已经检查并修复了以上问题,但仍然遇到相同的错误,请检查你的代码是否正确地创建了连接对象并将其分配给 `con` 变量。你可以尝试使用 `System.out.println` 输出一些调试信息,以帮助你找到问题所在。
例如:
```
System.out.println("Loading driver...");
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Connecting to database...");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");
if (con.isValid(5)) {
System.out.println("Connection is valid!");
} else {
System.out.println("Connection is not valid!");
}
```
这样可以帮助你找到问题所在,并进一步排除错误。