Note that there are some explanatory texts on larger screens.

plurals
  1. POSQLException: no such table
    primarykey
    data
    text
    <p>now I got some trouble connecting to my database. I know the tables i am looking for exist because when I access them with the command line they can be queried.</p> <p>Probably some minor oversight but I would love some help.</p> <p>This is where I make my connection to my database package persistence;</p> <pre><code>import java.sql.DriverManager; import java.sql.Connection; import java.sql.SQLException; public class DBRegistry { private static DBRegistry db = null; private static Connection connection = null; private DBRegistry() {}; public static synchronized DBRegistry getUniqueInstance() { if (db == null) { db = new DBRegistry(); return db; } else return db; } public synchronized Connection getDBConnection() { try { Class.forName("org.sqlite.JDBC"); connection = DriverManager.getConnection("jdbc:sqlite:src/database/taskMan.db"); return connection; } catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();} return null; } public synchronized void closeConnection() { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } </code></pre> <p>Here is how I query it</p> <pre><code>public void create(UUID oid, Object obj) { Task t = (Task)obj; String statement = "INSERT INTO `complexTask` (`oid`,`description`,`status`) VALUES (?, ?, ?)"; try { PreparedStatement dbStatement = db.prepareStatement(statement); dbStatement.setString(1, oid.toString()); dbStatement.setString(2, t.getDescription()); dbStatement.setBoolean(3, t.getStatus()); dbStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } </code></pre> <p>and finally a stack trace:</p> <pre><code>java.sql.SQLException: no such table: complexTask at org.sqlite.DB.throwex(DB.java:288) at org.sqlite.NativeDB.prepare(Native Method) at org.sqlite.DB.prepare(DB.java:114) at org.sqlite.PrepStmt.&lt;init&gt;(PrepStmt.java:37) at org.sqlite.Conn.prepareStatement(Conn.java:231) at org.sqlite.Conn.prepareStatement(Conn.java:224) at org.sqlite.Conn.prepareStatement(Conn.java:213) at persistence.framework.ComplexTaskRDBMapper.create(ComplexTaskRDBMapper.java:23) at persistence.PersistanceFacade.create(PersistanceFacade.java:49) at persistence.persistanceStates.NewState.commit(NewState.java:10) at persistence.PersistentObject.commit(PersistentObject.java:23) at domain.objects.Task.commitToDB(Task.java:89) at domain.TaskRepository.commitToDB(TaskRepository.java:60) at domain.TaskController.persistanceCommit(TaskController.java:97) at presentation.TaskControlsJPanel$3.actionPerformed(TaskControlsJPanel.java:127) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253) at java.awt.Component.processMouseEvent(Component.java:6175) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:5940) at java.awt.Container.processEvent(Container.java:2105) at java.awt.Component.dispatchEventImpl(Component.java:4536) at java.awt.Container.dispatchEventImpl(Container.java:2163) at java.awt.Component.dispatchEvent(Component.java:4362) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055) at java.awt.Container.dispatchEventImpl(Container.java:2149) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4362) at java.awt.EventQueue.dispatchEvent(EventQueue.java:604) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138) </code></pre> <p>And some JUnit code for good measure, the first test passes and the second fails with a similar error to the one above</p> <pre><code>package test.persistence; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import persistence.DBRegistry; import junit.framework.TestCase; public class TestDBRegistry extends TestCase { public void testDBRegistryConnection() { Connection con = DBRegistry.getUniqueInstance().getDBConnection(); assertNotNull(con); } public void testTableQuery() throws SQLException { Connection con = DBRegistry.getUniqueInstance().getDBConnection(); PreparedStatement dbStatement = con.prepareStatement("SELECT COUNT(*) FROM `singleTask`"); assertEquals("should be 1 for successful query", 1, dbStatement.executeQuery()); } </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.
 

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