0

This is my CreateQuery.java class .

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();

        }
    }

This is my DbConnect class

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;
    }

}

The error I am getting when I run CreateQuery is

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

What is the error ? And How do I debug it ?

0

1 Answer 1

3

The method returnDatabaseConnection() that you call in the constructor of CreateQuery always returns null, so it's not a surprise that your connection object is null.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.