SQLite java.sql.SQLException: no such column:

ve987

Aktives Mitglied
Hallo,

ich habe ein Problem mit einer Abfrage und bekomme eine java.sql.SQLException.


Ich bekomme die Fehlermeldung:

Java:
SELECT Id FROM Users WHERE Name = 'Helga' // Sysout vom Befehl

2|java.sql.SQLException: no such column: 'Name'
    at org.sqlite.jdbc3.JDBC3ResultSet.findColumn(JDBC3ResultSet.java:54)
    at org.sqlite.jdbc3.JDBC3ResultSet.getString(JDBC3ResultSet.java:448)
    at Application.DBStatement.showData(DBStatement.java:137)
    at Application.DBStatement.createQuery(DBStatement.java:121)
    at Application.DBStatement.search(DBStatement.java:179)
    at Main.MainClass.main(MainClass.java:61)


Vermutlich vermisse ich etwas im Select Befehl?

Anbei mein Code:

Java:
private final String TABLE_NAME = "Users";
    
    private final String COLUMN_ID = "Id";
    private final String COLUMN_Name = "Name";
    private final String COLUMN_EMail = "EMail";
    private final String COLUMN_Registration_Date = "Registration"; 
    

public void createTable() throws SQLException {
        
        String createTable= "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + 
                "( " 
                 + COLUMN_ID + " INTEGER PRIMARY KEY, "
                 + COLUMN_Name + " TEXT NOT NULL, "
                 + COLUMN_EMail + " TEXT NOT NULL, "
                 + COLUMN_Registration_Date + " TEXT NOT NULL "
                
                + " )";     
    }


        public void insertData() throws SQLException {
            
    String insertData = "INSERT INTO " + TABLE_NAME + " VALUES " 
        
     + "(NULL, 'Olga', 'olga@mail.com', DATETIME('now', 'localtime')),"
     + "(NULL, 'Helga', 'helga.email.com', DATETIME('now', 'localtime')),"
     + "(NULL, 'Zoe', 'zoe.mail.com', DATETIME('now', 'localtime'))";
    
}

try {                                                                 
            dbStatement.search(1, "Helga");   //  DER BLOCK BEFINDET SICH IN SEPERATER KLASSE
        } catch (Exception e) {
            e.printStackTrace();
        }


public void search(int number, String searchText) throws SQLException {
        
        String searchQuery= "";
        
        switch (number) {

        case 1:

            searchQuery = "SELECT " + COLUMN_ID + " FROM " + TABLE_NAME + " WHERE " + COLUMN_Name + " = " + "'" + searchText + "'";   // GEHT NICHT
            
           //searchQuery = "SELECT * FROM " + TABLE_NAME + " WHERE " + COLUMN_Name + " = " + "'" + searchText + "'";   // DAS GEHT
            
        break;
        
        default:
            break;
        }           
    }
 
K

kneitzel

Gast
Die Fehlermeldung besagt, dass die Spalte Name nicht in der Tabelle existiert.

Das, was ich so gesehen habe, sieht aber erst einmal von der Funktion ok aus. Daher kann man nur Vermutungen anstellen. Evtl. wird immer die gleiche Datenbank-Datei genutzt und die Tabelle existiert schon ohne eine Spalte Name. Wegen dem CREATE IF NOT EXISTS läuft da aber dann alles durch ohne dass es angelegt wird ...

Generell der Hinweis: Statt SQL Queries so als String zusammen zu setzen, sollte man ein prepared statement nutzen und da dann parameter verwenden. Sonst ist man offen für SQL Injection Angriffe.
 
M

Mart

Gast
PHP:
<?php

     $myPDO = new PDO('sqlite:/home/legacy/Bilder/CardDatabse.db');
  
// erwarteter Parameter
     $search="Draco";
     // schlechter parameter
     $injection="asdf' OR '1'='1";
     $sql = "SELECT * FROM CreatureCards WHERE name='$injection'";
     $result = $myPDO->query($sql);
  
    print_r($result);
  
    foreach($result as $row)
    {
      print_r($row);
    }


?>

ein Php beispiel warum es nicht so nicer dicer ist strings auszuführen
die Parameter kommen von irgendwo her also client seite das kannst du auch ummodeln in java code hab keine java injection parat


ausserdem kannst du deien batch dann nicht wirklich ausnutzen die du übrignes auch nutzen solltest
 
Zuletzt bearbeitet von einem Moderator:

ve987

Aktives Mitglied
Vielen Dank für die Tipps. Zu java injection und prepared statement bin ich noch nicht gekommen ;) Vorerst wollte ich mal so versuchen. Ich hoffe, es wird dann besser mit prepared statement funktionieren :)
 

ve987

Aktives Mitglied
Ich habe jetzt den Befehl direkt in die DB Browser eingefügt und Ausführung wurde ohne Fehler beendet..

SQL:
 SELECT Id FROM Users WHERE Name = 'Helga';
 
K

kneitzel

Gast
Dann lass Dir doch einmal genau ausgeben, was er ausführen will. Also den zusammengebauten String auch noch einmal zur Kontrolle ausgeben ehe Du ihn ausführst. Und zeige uns den ganzen Code, den Du da ausführst und keine zusammengeschnittenen Ausschnitte...
 
M

Mart

Gast
du kannst dir im Regelfall den Query String out println lassen der dann an den server übergeben wird der wäre nützlcih :D
 

ve987

Aktives Mitglied
Problem gelöst :) es lag an einer Methode. Ich habe COLUMN_Name, COLUMN_EMail und COLUMN_Registration_Date auskomentiert und es hat funktioniert.

Kneitzel: Du hast völlig Recht, ab jetzt werde ich immer den vollständigen Code reinkopieren.
Mart: Das hab ich auch gemacht, trotzdem danke :)

Java:
    private void showData(ResultSet resultSet) throws SQLException {
       
        while (resultSet.next()) {
            System.out.print(resultSet.getInt(COLUMN_ID));
            System.out.print("|");
//            System.out.print(resultSet.getString(COLUMN_Name));
//            System.out.print("|");
//            System.out.print(resultSet.getString(COLUMN_EMail));
//            System.out.print("|");
//            System.out.print(resultSet.getString(COLUMN_Registration_Date));
//            System.out.print("\n");
        }
    }
 
K

kneitzel

Gast
Das ist j auch logisch, denn Du hast ja nur die ID abgefragt in dem SQL. Daher dann bei der Abfrage des Namens im ResultSet diese Fehlermeldung.

Da dann noch der Hinweis: Wenn Du so eine Exception bekommst, dann gib auch immer den Stacktrace aus. Der zeigt genau an, in welcher Zeile der Fehler aufgetreten ist und du landest dann auch direkt an der richtigen Stelle die Du uns dann z.B. auch zeigen kannst.
 

mihe7

Top Contributor
Küchengerät ist ja wohl leicht untertrieben. Das ist die Universalmaschine. Man legt z. B. oben einen Apfel rein, unten kommt ein Ipad raus.
 
K

kneitzel

Gast
Und wenn du sofort kaufst bekommst du nicht ein sondern gleich 100 dieser tollen Geräte!

Oder wie?

Aber ich schaue sowas nicht und ich kenne dieses Gerät auch nicht ... aber so ein Handgerät zum schnellen zerkleinern habe ich auch ... immer die Küchenmaschine anwerfen ist blöd wenn man schnell Karottensticks will oder Käse Schreddern oder so ....

Und nur die Reibe ist doof - da gibt es zu leicht auch Fleischbeilage oder so :)

Und wenn ihr Zeit für so Werbesendungen habt, dann verbringt ihr zu wenig Zeit hier im Forum :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
nrg Oracle java.sql.SQLException Ungültiger Vorgang bei schreibgeschützter Ergebnismenge Datenbankprogrammierung 0
Y java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state Datenbankprogrammierung 2
I java.sql.SQLException: No data found Datenbankprogrammierung 3
T java.sql.SQLException: unexpected end of statement Datenbankprogrammierung 2
H java.sql.SQLException: Access denied for user 'root'@'localhost' (using password : YES) Datenbankprogrammierung 1
D java.sql.SQLException Datenbankprogrammierung 3
M java.sql.SQLException: Unable to open file Datenbankprogrammierung 2
M java.sql.SQLException: out of memory Datenbankprogrammierung 18
zilti java.sql.SQLException: Before start of result set Datenbankprogrammierung 2
C FM: java.sql.SQLException: Geschlossene Ergebnismenge: next Datenbankprogrammierung 7
A Problem: java.sql.SQLException Datenbankprogrammierung 5
I hilfe! java.sql.SQLException Datenbankprogrammierung 7
M java.sql.SQLException: No data found Datenbankprogrammierung 9
K MsAccess immer beim zweiten Update java.sql.SQLException Datenbankprogrammierung 28
R MySQL denies access to data source - java.sql.SQLException Datenbankprogrammierung 14
K java.sql.SQLException: Before start of result set Datenbankprogrammierung 2
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
P Reicht finally nicht um DB connections zu schließen in (altem) Java? Datenbankprogrammierung 4
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
U SQL Server mit Java verbinden Datenbankprogrammierung 5
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Noobfrage: Konvertierung von SQL-Datentyp 'timestamp with time zone' in Java-Datentyp Datenbankprogrammierung 3
Zrebna Lediglich interne DB-Verbindungen (Connections) auslesen - mittels Java Datenbankprogrammierung 4
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
berserkerdq2 Was kann passieren, wenn ich in java einstelle, dass der Fremdschüssel ein Attribut ist, welches selber kein Primärschlüssel ist? Datenbankprogrammierung 4
berserkerdq2 Foreign key einstellen java Datenbankprogrammierung 4
nikgo Java SQL Ausgabe in Liste o.ä. abspeichern um mit dem Ergbnis "zu arbeiten"? Datenbankprogrammierung 5
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
S ODBC Treiber in Java Editor einbinden Datenbankprogrammierung 3
H Oracle Resize eines Images in Java und Rückgabe des Image als BLOB an die Oracle Datebank Datenbankprogrammierung 14
H Java Class zum komprimieren von Jpeg-Images zum Einbinden in Oracle DB - Bild als blob (in und out) Datenbankprogrammierung 23
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
D Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA) Datenbankprogrammierung 0
Slaylen Java List Suchen mit eigenem Generischen Datentyp Datenbankprogrammierung 10
N java sql abfrage bestimmer Datumszeitraum Datenbankprogrammierung 9
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
P USER Management in SQL übergreifend auf JAVA Programm Datenbankprogrammierung 1
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
N Java Abfrage über GUI, Daten hinzufügen Datenbankprogrammierung 54
N Java, sql, jar, JDBC-Treiber in Classpath Datenbankprogrammierung 8
N java SQL JAR - Probleme Datenbankprogrammierung 18
N SQL Datenbank Spalte in Java Array Datenbankprogrammierung 2
N SQL-Statement Java Variable in SQL DB einfügen Datenbankprogrammierung 1
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
T Java Spiel Daten speichern Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
L Mybatis Datenbankabfragen in Java Datenbankprogrammierung 1
H MariaDB-Zugriff mittels Java SE Datenbankprogrammierung 3
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
S Datenbank MySQL und Java Datenbankprogrammierung 8
S Beispiel-Blockchain + GUI mit Java erstellen Datenbankprogrammierung 0
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
Trèfle SQLite SQL-Java Änderungen ausgeben Datenbankprogrammierung 1
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
A MySQL Select und Insert in Java Datenbankprogrammierung 15
C Derby/JavaDB Auf Variable aus Link in java server page zugreifen Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
F MySQL Einfügen von Datensätzen über Java Datenbankprogrammierung 8
B CSV in Java einbinden und Rechnung Datenbankprogrammierung 7
L Speicherverbrauch Java Anwendung mit einer Datenbankanbindung Datenbankprogrammierung 19
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
L Java- Zähle alle Werte aus der Tabelle von aktiver Zelle Datenbankprogrammierung 12
S Datenbank/Java true/false Datenbankprogrammierung 8
S Java und SQL-Befehle Datenbankprogrammierung 6
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
L Datenbankprogrammierung mit Java und phpMyAdmin Datenbankprogrammierung 4
Korvinus Java mit Cassandra verbinden Datenbankprogrammierung 18
M SQL-Statement SQL mit Java, Update Fehler Datenbankprogrammierung 1
D Installation von MariaDB in java und eclipse Datenbankprogrammierung 2
H Datenbank Export mit Java Datenbankprogrammierung 3
I MariaDB-Verbindung in JAVA Datenbankprogrammierung 11
L Oracle Datenbank über Java aufrufen Datenbankprogrammierung 29
W Daten in Java intern abfragen Datenbankprogrammierung 1
W MySQL Ausgabe von Datenbank in Java-App Datenbankprogrammierung 6
D Java Datenbanken Datenbankprogrammierung 1
Y H2 H2 foreign key in Spark Java ausgeben Datenbankprogrammierung 1
J Java Eclipse Hilfe beim Programmieren Datenbankprogrammierung 7
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
R Java-Befehle/Operatoren für copy&paste Datenbankprogrammierung 2
C Mit asm laufende Java Anwendung manipulieren Datenbankprogrammierung 1
W Wie liest dieses Java-Programm der Compiler? Datenbankprogrammierung 3
K Java Datenbank auslesen Datenbankprogrammierung 8
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K HSQLDB .sql Script Aufruf über Java Datenbankprogrammierung 7
B Java Programm und Dantebank umlagern Datenbankprogrammierung 25
B MySQL bplaced Datenbank mit Java ansprechen Datenbankprogrammierung 11
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
F Java Objekte in einer Datenbank speichern Datenbankprogrammierung 4
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
O PostgreSQL Java Row Index erhalten Datenbankprogrammierung 1
dzim Cassandra Cluster DB und der Java-Treiber Datenbankprogrammierung 1
H Entity in Java implementieren Datenbankprogrammierung 13

Ähnliche Java Themen


Oben