SQL statements and database connection within a java Program
im having trouble with my sql statements that are supposed to be used
inside my java program to access and modify an access database. it throws
out a very large amount of errors and i cannot seem to find the way to fix
them. here is my code.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.CallableStatement;
import java.util.logging.Level;
import java.util.logging.Logger;
public class AccessDatabaseConnection {
private int wins = 0;
private String name = "";
private int losses = 0;
private int loss = 0;
private int win = 0;
Connection con;
private ultimate ult;
ResultSet rset;
Statement stmt;
public AccessDatabaseConnection(ultimate game) {
this.ult = game;
}
public Connection AccessDatabaseConnect() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String database = "jdbc:odbc:Driver={Microsoft Access
Driver(*.mdb,
*.accdb)};DBQ=C:\\Users\\McKenzieC\\Documents\\tictactoeRecords.accdb;";
con = DriverManager.getConnection(database, "", "");
stmt = con.createStatement();
} catch (Exception e) {
e.printStackTrace();
return con;
}
return con;
}
public void addData(String nameWin, String nameLose) {
if (getWins() == -1) {
win = getWins() + 2;
try {
rset = stmt.executeQuery("SELECT * FROM t_Records");
stmt.executeQuery("INSERT INTO t_Records (Name,Wins,Losses) "
+ "VALUES (" + nameWin.toUpperCase() + ","
+ Integer.toString(win) + "," + 0 + ")");
rset.close();
} catch (SQLException e) {
e.printStackTrace();
}
} else {
win = getWins() + 1;
try {
rset = stmt.executeQuery("SELECT * FROM t_Records");
stmt.executeQuery("UPDATE t_Records SET Wins="
+ Integer.toString(win) + " WHERE Name="
+ nameWin.toUpperCase());
rset.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (getLosses() == -1) {
loss = getLosses() + 2;
try {
rset = stmt.executeQuery("SELECT * FROM t_Records");
stmt.executeQuery("INSERT INTO t_Records (Name,Wins,Losses) "
+ "VALUES (" + nameLose.toUpperCase() + "," + 0 + ","
+ Integer.toString(loss) + ")");
rset.close();
} catch (SQLException e) {
e.printStackTrace();
}
} else {
loss = getLosses() + 1;
try {
rset = stmt.executeQuery("SELECT * FROM t_Records");
stmt.executeQuery("UPDATE t_Records SET Losses="
+ Integer.toString(loss) + " WHERE Name="
+ nameLose.toUpperCase());
rset.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
// public String getName() {
// try {
// stmt = connect().createStatement();
// rset = stmt.executeQuery("SELECT * FROM t_Records");
// if (rset.next()) {
// name = rset.getString("Name");
// return name;
// }
// } catch (SQLException ex) {
// }
// return null;
// }
public int getWins() {
try {
rset = stmt.executeQuery("SELECT * FROM t_Records");
while (ult.getPlayerWin() != rset.getString("Name").toUpperCase()) {
if (ult.getPlayerWin() == rset.getString("Name").toUpperCase()) {
wins = rset.getInt("Wins");
rset.close();
return wins;
}
if (rset.next() == false) {
return -1;
} else {
rset.next();
}
}
wins = rset.getInt("Wins");
rset.close();
return wins;
} catch (SQLException e) {
e.printStackTrace();
return -1;
}
}
public int getLosses() {
try {
rset = stmt.executeQuery("SELECT * FROM t_Records");
while (ult.getPlayerLose().toUpperCase() != rset.getString("Name")
.toUpperCase()) {
if (ult.getPlayerLose().toUpperCase() == rset.getString("Name")
.toUpperCase()) {
losses = rset.getInt("Losses");
rset.close();
return losses;
}
if (rset.next() == false) {
return -1;
} else {
rset.next();
}
}
losses = rset.getInt("Losses");
rset.close();
return losses;
} catch (SQLException e) {
e.printStackTrace();
return -1;
}
}
}
the errors look like this.(there are a lot more so i cut these down a
little bit.)
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at AccessDatabaseConnection.getWins(AccessDatabaseConnection.java:109)
at AccessDatabaseConnection.addData(AccessDatabaseConnection.java:40)
at ultimate$ButtonHandler.checkGameWin(ultimate.java:1300)
at ultimate$ButtonHandler.actionPerformed(ultimate.java:149)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid
cursor state
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at AccessDatabaseConnection.getWins(AccessDatabaseConnection.java:109)
at AccessDatabaseConnection.addData(AccessDatabaseConnection.java:41)
at ultimate$ButtonHandler.checkGameWin(ultimate.java:1300)
at ultimate$ButtonHandler.actionPerformed(ultimate.java:149)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
No comments:
Post a Comment