-1

I am learning java and i came across this error. I think Statement stmt = null is causing the error. Any help would be appreciated.

Here is the code i have written:

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

class Database {
    public static void main(String args[]) {
        Connection conn = null;
        Statement stmt = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");
            System.out.println("DB CONNECTED!");
            conn.createStatement();
            String sql = "SELECT * FROM emp";
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                System.out.println("I am " + rs.getString("name") + " and i live in " + rs.getString("city")
                        + ". Btw i am " + rs.getInt("age") + " of age.");
            }
        } catch (Exception e) {
            e.printStackTrace();
            // System.out.println("Error: " + e.toString());
        }
    }
}

Error i am getting:

java.lang.NullPointerException: Cannot invoke "java.sql.Statement.executeQuery(String)" because "<local2>" is null
        at Database.main(db.java:16)
HRWNdR
  • 13
  • 1
  • 4

1 Answers1

1

You need to use stmt = conn.createStatement(); to init it

class Database {
    public static void main(String args[]) {
        Connection conn = null;
        Statement stmt = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");
            System.out.println("DB CONNECTED!");
            stmt = conn.createStatement();
            String sql = "SELECT * FROM emp";
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                System.out.println("I am " + rs.getString("name") + " and i live in " + rs.getString("city")
                        + ". Btw i am " + rs.getInt("age") + " of age.");
            }
        } catch (Exception e) {
            e.printStackTrace();
            // System.out.println("Error: " + e.toString());
        }
    }
}
flyingfox
  • 13,414
  • 3
  • 24
  • 39