Note that there are some explanatory texts on larger screens.

plurals
  1. POJava MySQL NullPointerException on query
    primarykey
    data
    text
    <p>Basically I have a problem with getting a ResultSet from a database. The errors occur around Line 34 (?) in this code block but I've marked it</p> <pre><code>ResultSet rs = caq.executeQuery("SELECT * FROM ProjectScore"); //error goes here </code></pre> <p>I get a null pointer exception on runtime and this is the output from the catch statement below:</p> <pre><code>null, calculating average score failed java.lang.NullPointerException [Ljava.lang.StackTraceElement;@1de2b1 </code></pre> <p>The interesting thing is that I use the Connection Exactly the same in the class at the end and I receive no errors there. Copying the statement to the first class doesn't work either so I assume it's something else. I think that's all I have, any help is appreciated :)</p> <pre><code>import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; public class MainWindow extends JFrame implements ActionListener{ //....................... private int [] averageScore; //References private LogInWindow liw; private NewUserWindow nuw; private ScoreWindow sw; private boolean isAnotherWindowOpen = false; private boolean isLoggedIn = false; private ConnectionAndQueries caq; public MainWindow(ConnectionAndQueries caq) throws SQLException{ this.caq = caq; //................................. //Middle averageScore = new int [9]; calculateAverageScore(); setTable(); //............................ } private void calculateAverageScore() throws SQLException{ try{ ResultSet rs = caq.executeQuery("SELECT * FROM ProjectScore"); //error goes here int [] count = new int [9]; int [] totalScore = new int [9]; while(rs.next()){ int itemID = rs.getInt("itemID"); count[itemID]++; totalScore[itemID] += rs.getInt("Score"); } for(int i = 0; i &lt; 9; i++){ averageScore[i] = totalScore[i] / count[i]; } } catch (Exception e) { System.out.print(e.getMessage()); System.out.println(", calculating average score failed"); System.out.println(e.toString()); System.out.println(e.getStackTrace().toString()); } } } //next class import java.sql.*; public class ConnectionAndQueries { private static Connection connection; private static Statement statement; private MainWindow mw; public ConnectionAndQueries() throws ClassNotFoundException, SQLException{ mw = new MainWindow(this); connect(); } public static void connect() throws ClassNotFoundException, SQLException{ try{ Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://zzzzzzzzzz", "yyyy", "xxxx"); //dont think im allowed to give that info statement = connection.createStatement(); } catch (Exception e) { System.out.println("Connecting to the database failed"); } } public ResultSet executeQuery(String query) throws SQLException { return statement.executeQuery(query); } public int executeUpdate(String update) throws SQLException { return statement.executeUpdate(update); } public static void main(String [] args) throws ClassNotFoundException, SQLException{ ConnectionAndQueries caq = new ConnectionAndQueries(); } } //another class which uses the connection class, and works. import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; public class LogInWindow extends JFrame implements ActionListener{ //........................ //References private MainWindow mw; private ConnectionAndQueries caq; public LogInWindow(MainWindow mw, ConnectionAndQueries caq){ this.mw = mw; this.caq = caq; //...................... } public void actionPerformed(ActionEvent e) { if(e.getSource() == logIn){ String usn = usernameField.getText(); String pwd = passwordField.getText(); try { ResultSet rs = caq.executeQuery("SELECT * FROM ProjectCustomer"); while(rs.next()){ if(rs.getString("username").equals(usn)){ if(rs.getString("passwrd").equals(pwd)){ logInSuccess(usn); mw.userLoggedIn(usn); quit(); } } } if(mw.isUserLoggedIn() == false) logInFailed(); } catch (Exception e2) { System.out.print(e2.getMessage()); System.out.println(", error at log in"); System.out.println(e2.toString()); } } else if(e.getSource() == quit){ quit(); } } //............................ } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload