gpt4 book ai didi

java - getConnection() 中抛出空指针异常

转载 作者:行者123 更新时间:2023-11-29 01:33:29 26 4
gpt4 key购买 nike

我有以下情况:我有一个与数据库 (MySQL) 连接的 java 代码。当我从 eclipse 运行 java 代码并从数据库中获取数据时,一切正常。但是当我从 html 代码运行 java 代码作为 Applet 时,它抛出 Null Pointer Exception 并且我检测到在这种情况下问题发生在以下 java 代码中:

private  Connection getConnection() throws SQLException{
try {
Class.forName("com.mysql.jdbc.Driver");
String name="jdbc:mysql://localhost:3306/sensors_data";
String username="root";
String psw="11111";

conn = DriverManager.getConnection(name,username,psw);
} catch(Exception e) {
e.printStackTrace();
}
return conn;

对象“conn”为空。

最佳答案

好吧,如果 DriverManager.getConnection() 抛出一个异常,您将打印出该异常,但无论如何都会返回 conn。您可能应该让异常传播给调用者 - 毕竟,调用者现在没有可以使用的连接。

(您还捕获了任何异常,而不仅仅是 SQLException,这是个坏主意。)

虽然我不希望能够直接从小程序连接到数据库 - 我不记得小程序网络连接的确切限制,但这很可能是问题所在。与Web服务器相比,数据库运行在哪里?如果它不在发布小程序的同一台主机上,我不希望它在没有特殊权限的情况下根本无法建立连接。 (我怀疑尝试连接到 localhost 不太可能成功。)

当然,您应该能够在调试日志中看到 DriverManager.getConnection 抛出的异常 - 这应该是第一个调用端口,以及修复异常处理。

关于java - getConnection() 中抛出空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4243494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com