java - 初始化后出现空指针异常

标签 java jdbc nullpointerexception

    private static String dbURL = "jdbc:mysql://localhost:3306/mydb";
    private static String username = "secret";
    private static String password = "secret";
    private static Connection conn = null;

    public static void initDbConnection(){
        try {
            conn = DriverManager.getConnection(dbURL, username, password);
            Class.forName("com.mysql.jdbc.Driver");
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static void test3(){
        initDbConnection();
        try{
            String sql = "SELECT * FROM Products";
            Statement statement = conn.createStatement();
            ResultSet result = statement.executeQuery(sql);
            while (result.next()){
                String name = result.getString("name");
                System.out.println(name);
            }
        } 
        catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

即使我在 test3() 上调用了 initDbConnection() ,为什么我在 conn 上遇到空指针异常?我该如何消除这个问题?

最佳答案

Class.forName("com.mysql.jdbc.Driver");

应该是第一行。这样就将 mysql 驱动程序加载到内存中。然后您将获得连接。

应该是这样

try {
     Class.forName("com.mysql.jdbc.Driver");
     conn = DriverManager.getConnection(dbURL, username, password);
} catch (SQLException e1) {
     e1.printStackTrace();
}
 catch (ClassNotFoundException e) {
     e.printStackTrace();
}

关于java - 初始化后出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22769670/

相关文章:

java - JFrame 上的 Enter 键

tomcat - 如何在 tomcat 中摆脱 MySQLNonTransientConnectionException 的无限循环连接关闭后不允许进行任何操作

java - 与我的二十一点纸牌程序中的 NullPointerException 错误混淆

java - 为什么空引用打印为 "null"

java - 调用其他类实现的接口(interface)方法时出现空指针异常

Java Android GCM 获取 crash_key

java - boolean 输出阻塞整个过程

Java 字符串分割器

java - JDBC 在生产服务器上不工作

java - 从 SimpleJdbcTemplate 查询返回的大列表