Search code examples
javasqliteselectresultset

Java SQLite Select Query


I am trying to complete my Java Code to execute a SELECT Query that will write the Results into Sysout.

Here is my Code:

public void PullFromDB() {

    Connection c = null;
    Statement stmt = null;
    try {
        Class.forName("org.sqlite.JDBC");
        c = DriverManager.getConnection("jdbc:sqlite:test.db");
        c.setAutoCommit(false);

        String sql = "SELECT * FROM " + Name + ";";
        stmt = c.createStatement();
        ResultSet rs = stmt.executeQuery(sql);

        System.out.println(sql);

        while (rs.next()) {

            Integer ID = rs.getInt("id");
            System.out.println("ID = " + ID.toString());

            String entry = rs.getString(Properties.get(j));
            System.out.println(Properties.get(j) + "=" + entry);
            j++;

        }

        rs.close();
        stmt.close();
        c.close();
    } catch (Exception e) {
        System.err.println(e.getClass().getName() + ": " + e.getMessage());
        System.exit(0);
    }

}

When I sysout my SQL Query it looks like this:

CREATE TABLE IF NOT EXISTS Cars(ID INTEGER PRIMARY KEY AUTOINCREMENT,AnzSitze TEXT,Marke TEXT,Pferdestärke TEXT);

INSERT INTO Cars(AnzSitze,Marke,Pferdestärke) VALUES('vier','Audi','420');

SELECT * FROM Cars;

Those are just some examples I put in.


Solution

  • maybe create and propabley insert has failed, i see none-ascii characters in filed name Pferdestärke try to use valid names

    check this

    Permitted characters in unquoted identifiers:

    ASCII: [0-9,a-z,A-Z$_] (basic Latin letters, digits 0-9, dollar, underscore)

    Extended: U+0080 .. U+FFFF

    so replace the filed name Pferdestärke to Pferdestarke in all qrys and try again