JDBC连接时 在主方法可以运行,封装成类调用的时候就出错

JDBC连接时 在主方法可以运行,封装成类 调用的时候就出错
这个是我创建的连接的类

package sql_connection;

import java.sql.Connection;
import java.sql.DriverManager;

public class GetConnection {
    private static Connection conn=null;
    private static String address="jdbc:mysql://localhost:3306/MYSQL?useSSL=false&serverTimezone=UTC";
    private static String dateBaseName="****";
    private static String dateBasePwd="******";
    public static Connection getconn() {
        if(conn==null) {
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");//提示错误
                conn=DriverManager.getConnection(address, dateBaseName, dateBasePwd);
                System.out.println("连接成功");
            } catch (Exception e) {
                System.out.println("连接失败");
                e.printStackTrace();
            }
            
        }

        return conn;
        
    }

}

这是我创建的主方法

package sql_connection;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class run {
    public static void main(String[] args) {
        Connection conn=null;
        Statement str=null;
        String sjk="select * from goods";
         try {
             conn= GetConnection.getconn();//提示错误
            str=conn.createStatement();
            ResultSet rs=str.executeQuery(sjk);
            while(rs.next()) {                
                System.out.println(rs.getString("goods_name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                conn.close();//提示错误
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                str.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        }
}

这是最后的运行结果
连接失败
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:377)
at sql_connection/sql_connection.GetConnection.getconn(GetConnection.java:14)
at sql_connection/sql_connection.run.main(run.java:14)
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.close()" because "conn" is null
at sql_connection/sql_connection.run.main(run.java:24)

希望各位

```java

```帮我看看

很明显在你的工具类里面有问题,首先你的mysql数据库,你居然在系统表里面创建表,而不是自定义数据库,然后在自定义数据库里面建表,另外你写if判断是不是多余了

img

GetConnection.conn = GetConnection.getconn();