gpt4 book ai didi

java - 在 postgres 上运行 JDBC 时出错

转载 作者:行者123 更新时间:2023-11-29 14:24:21 24 4
gpt4 key购买 nike

这是我的 CreateQuery.java 类。

package DbConnect;


import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class CreateQuery {
Connection conn;

public CreateQuery() throws ClassNotFoundException, SQLException, IOException {
conn=new DbAccess().returnDatabaseConnection();
}
public int addNewLayertoDB(){
try {
PreparedStatement statement = null;
//String table_name = feature_name + "_" + shape;

String query = "SELECT the_geom from bbmp ";
statement = conn.prepareStatement(query);
//statement.setString(1, feature_name);
ResultSet rs = statement.executeQuery();
rs.close();
return 1;
} catch (SQLException ex) {
System.out.println("Sql exception");
return 0;
}
}




public void closeConn() throws SQLException {
if (conn != null) {
this.conn.close();
}
}
public static void main(String args[]) throws FileNotFoundException, IOException, ClassNotFoundException, SQLException{
CreateQuery cq = new CreateQuery();
cq.addNewLayertoDB();
cq.closeConn();

}
}

这是我的 DbConnect 类

package DbConnect;



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

public class DbAccess{

public static void main(String[] argv) {

System.out.println("-------- PostgreSQL " +
"JDBC Connection Testing ------------");

try {

Class.forName("org.postgresql.Driver");

} catch (ClassNotFoundException e) {

System.out.println("Where is your PostgreSQL JDBC Driver? " +
"Include in your library path!");
e.printStackTrace();
return;

}

System.out.println("PostgreSQL JDBC Driver Registered!");

Connection connection = null;

try {

connection = DriverManager.getConnection(
"jdbc:postgresql://127.0.0.1:5432/Ethermap","postgres", "*******");

} catch (SQLException e) {

System.out.println("Connection Failed! Check output console");
e.printStackTrace();
return;

}

if (connection != null){
System.out.println("You made it, take control your database now!");
}else{
System.out.println("Failed to make connection!");
}
}

public Connection returnDatabaseConnection() {
System.out.println("DB not connected");
return null;
}

}

我在运行 CreateQuery 时遇到的错误是

DB not connected
Exception in thread "main" java.lang.NullPointerException
at DbConnect.CreateQuery.addNewLayertoDB(CreateQuery.java:24)
at DbConnect.CreateQuery.main(CreateQuery.java:45)

错误是什么?以及如何调试它?

最佳答案

您在 CreateQuery 的构造函数中调用的方法 returnDatabaseConnection() 始终返回 null,因此您的连接对象为 null 并不奇怪。

关于java - 在 postgres 上运行 JDBC 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5854771/

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