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
```帮我看看