I am trying to retrieve saved data from my Access Database in Java but getting a nullpointerexception. I cant figure out the problem. Here s the code:
cnnct.connect();
try {
cnnct.rs = cnnct.statement.executeQuery(getMR());
Reception b = new Reception();
System.out.println("adadas");
while (cnnct.rs.next()) {
String a = cnnct.rs.getString("MRNumber");
String c = cnnct.rs.getString("PatientName");
String d = cnnct.rs.getString("FatherName");
String e = "a";//cnnct.rs.getString("Age");
String f = cnnct.rs.getString("Address");
String g = cnnct.rs.getString("Contact");
String h = cnnct.rs.getString("CNIC");
String i = cnnct.rs.getString("Consultant");
String j = cnnct.rs.getString("Gender");
System.out.println(b+ c);
b.editRecord(mrNumberInput.getText(), c, d, e, f, g, h, i, j);
}
}
catch (Exception e) {
System.out.println(e);
}
I tried writing all the getString() methods directly into the arguments list of b.editRecord() but the problem persisted. And the cnnct is the object of the class that connects to db. It is working fine. Following is the code for getMR() function. But the problem seems to be in the block with the while loop.
public String getMR () {
System.out.println("adads");
String mr = mrNumberInput.getText();
String sql = "select MRNumber, PatientName, FatherName, Age, Address, Contact, CNIC, Consultant, Gender from Patient where MRNumber = " + mr;
return sql;
}
There are a few print statements that I wrote just to test if the code was working, they are to be ignored. Thanks
This is the error report:
1 net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.2 user lacks privilege or object not found: MS
2 UCAExc:::3.0.2 user lacks privilege or object not found: MS
3 UCAExc:::3.0.2 user lacks privilege or object not found: MS
4 java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: MS
5 [net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:211), sad.ReceptionView.okButtonMouseClicked(ReceptionView.java:111), sad.ReceptionView.access$000(ReceptionView.java:14), sad.ReceptionView$1.mouseClicked(ReceptionView.java:68), java.awt.Component.processMouseEvent(Component.java:6528), javax.swing.JComponent.processMouseEvent(JComponent.java:3324), java.awt.Component.processEvent(Component.java:6290), java.awt.Container.processEvent(Container.java:2234), java.awt.Component.dispatchEventImpl(Component.java:4881), java.awt.Container.dispatchEventImpl(Container.java:2292), java.awt.Component.dispatchEvent(Component.java:4703), java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898), java.awt.LightweightDispatcher.processMouseEvent(Container.java:4542), java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462), java.awt.Container.dispatchEventImpl(Container.java:2278), java.awt.Window.dispatchEventImpl(Window.java:2750), java.awt.Component.dispatchEvent(Component.java:4703), java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758), java.awt.EventQueue.access$500(EventQueue.java:97), java.awt.EventQueue$3.run(EventQueue.java:709), java.awt.EventQueue$3.run(EventQueue.java:703), java.security.AccessController.doPrivileged(Native Method), java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75), java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86), java.awt.EventQueue$4.run(EventQueue.java:731), java.awt.EventQueue$4.run(EventQueue.java:729), java.security.AccessController.doPrivileged(Native Method), java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75), java.awt.EventQueue.dispatchEvent(EventQueue.java:728), java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201), java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116), java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105), java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101), java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93), java.awt.EventDispatchThread.run(EventDispatchThread.java:82)]
6 net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.2 user lacks privilege or object not found: MS at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:211) at sad.ReceptionView.okButtonMouseClicked(ReceptionView.java:111) at sad.ReceptionView.access$000(ReceptionView.java:14) at sad.ReceptionView$1.mouseClicked(ReceptionView.java:68) at java.awt.Component.processMouseEvent(Component.java:6528) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6290) at java.awt.Container.processEvent(Container.java:2234) at java.awt.Component.dispatchEventImpl(Component.java:4881) at java.awt.Container.dispatchEventImpl(Container.java:2292) at java.awt.Component.dispatchEvent(Component.java:4703) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4542) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) at java.awt.Container.dispatchEventImpl(Container.java:2278) at java.awt.Window.dispatchEventImpl(Window.java:2750) at java.awt.Component.dispatchEvent(Component.java:4703) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Caused by: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: MS at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.executeQuery(Unknown Source) at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:208) ... 34 more Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: MS at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.ExpressionColumn.checkColumnsResolved(Unknown Source) at org.hsqldb.QueryExpression.resolve(Unknown Source) at org.hsqldb.ParserDQL.compileCursorSpecification(Unknown Source) at org.hsqldb.ParserCommand.compilePart(Unknown Source) at org.hsqldb.ParserCommand.compileStatements(Unknown Source) at org.hsqldb.Session.executeDirectStatement(Unknown Source) at org.hsqldb.Session.execute(Unknown Source) ... 37 more
Line #111 is cnnct.rs = cnnct.statement.executeQuery(getMR());
This is the connection class: public class ConnectToDb { Connection con = null; Statement statement; ResultSet rs;
public void connect () {
try {
String dir = System.getProperty("user.dir"), dbName = "SAD_Database.accdb";
String db = "jdbc:ucanaccess://" + dir + "/" + dbName;
con = DriverManager.getConnection(db);
statement = con.createStatement();
//return con;
}
catch (Exception e) {
new Error().textMessage.setText("Unable to connect to database.");
new Error().setVisible(true);
//System.out.println(e);
}
}