Mr.Smithyyy
Mr.Smithyyy

Reputation: 1339

Trouble retrieving data with JDBC in Eclipse IDE

I am pretty new to Java so I'm working on a project to develop my knowledge with databases and Java.

I have figured out how to add queries into the database but now I'm getting errors when trying to print them out.

Assume I already have everything that's necessary imported in such as the scanner and sql statements

Here is my connection class which is named MainClass:

public static Connection getConnection() throws Exception {
    String driver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/testTable";
    String username = "placeholder";
    String password = "placeholder";
    Class.forName(driver);
    Connection conn = Driver Manager.getConnection(url, username, password);
    return conn;
}

Now in a different class if the user types !lookup and a word I want the definition of that word to be retrieved from the table whose name is dictionary and columns are word, definition:

String userSearch = user_input.next();
String[] userSearchSplit = userSearch.split(" ", 3);

if (userSearchSplit[0].equals("!lookup")) {

    try {
        conn = MainClass.getConnection();
        String query = "select definition from dictionary where word=" + userSearchSplit[1];
        ResultSet result = pstmt.executeQuery(query);

        while (result.next()) {

            String definition = result.getString("definition");
            System.out.println(definition);

        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            pstmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

At the end of all this when I try to look up a word I put in the table before running I get:

java.lang.NullPointerException

Upvotes: 0

Views: 52

Answers (1)

Garun
Garun

Reputation: 22

Check if your user_input is null?

I am assuming your code:

ResultSet result = pstmt.executeQuery(query);

as

Statement pstmt = conn.createStatement();
ResultSet result = pstmt.executeQuery(query);

Or it could be that you have not initialized the pstmt properly

Upvotes: 1

Related Questions