String[] in eine SQL-Anweisung implementieren

java007

Bekanntes Mitglied
Hallo Leute,

ich versuche die SQL-Abfrage in eine For-Schleife zu implementieren. Allerdings komme ich nicht drauf, wie ich das "String[] c" in die SQL-Abfrage implementieren kann. Ich mit + usw. versucht.

Vielen Dank :)

[JAVA=42]

Strin a; // a wird aus einer anderen Klasse geliefert
String[] c = new String[]{"Raum1", "Raum2", "Raum3", "Raum4", "Raum5", "Raum6",};



for(int t = a.length()-1; t>=0; t-- ){

//c-Array !!!!!
ResultSet rs = stmt.executeQuery("SELECT '+c[t]+' FROM Daten Where NR = '"+a+"' ");
ResultSetMetaData rsmd = rs.getMetaData();
int clmCnt = rsmd.getColumnCount();
while (rs.next()) {
for (int i = 1; i <= clmCnt; i++) {

b = rs.getString(i);
System.out.print(b);

}
System.out.println();

}
rs.close();
stmt.close();
con.close();}
[/code]
 
Zuletzt bearbeitet:
A

anonym

Gast
Also, im Moment erzeugt dein Code Queries der Form

SELECT raum1 FROM Daten WHERE NR = 'a';

Probier mal mit einer mysql- GUI (z.B. phpmyadmin, MySQL- Administrator...) oder einem Kommandozeilen- Client diesen Queries auszufuehren und gucke, ob das das ist, was du willst. Wenn nicht, ueberlege, wie der Query aussehen soll, welche Stellen du wie ersetzen musst und baue das dann so zusammen.

PS: Auf jeden Fall brauchen wir mal den Query, den du erzeugen willst um zu sagen, was falsch läuft.
 

java007

Bekanntes Mitglied
Hallo Leute,
danke für eure Bemühung

@ Foermchen82
sobald ich deinen vorschlag ausführe, bekommen ich diese Fehlermeldung
The type of the expression must be an array type but it resolved to String


ich habe es leider bisher nicht hinbekommen, dürfte aber auch eigentlich nicht so schwer sein :(
 
S

SlaterB

Gast
diese Fehlermeldung bedeutet, dass c als String und nicht als String[] angesehen wird,
mit obigen Code passt das nicht zusammen, der kompiliert wenn man ihn etwa grob zu folgenen kompletten Programm erweitert

Java:
public class Test {
    public static void main(String[] args) throws Exception {
        String[] c = new String[]
            {"Raum1", "Raum2", "Raum3", "Raum4", "Raum5", "Raum6",};

        Statement stmt = null;
        String a = null;
        for (int t = a.length() - 1; t >= 0; t--)  {
            // c-Array !!!!!
            ResultSet rs = stmt.executeQuery("SELECT " + c[t] + " FROM Daten Where NR = '" + a + "' ");
            ResultSetMetaData rsmd = rs.getMetaData();
            int clmCnt = rsmd.getColumnCount();
            while (rs.next())  {
                for (int i = 1; i <= clmCnt; i++)  {
                    String b = rs.getString(i);
                    System.out.print(b);
                }
                System.out.println();
            }
            rs.close();
            stmt.close();
            // con.close();
        }
    }
}

also: die Fehlermeldung tritt in deinem Code auf, der hier unbekannt ist...
 
S

SlaterB

Gast
eine merkwürdige allgemeine Fehlermeldung, bei google findet man dazu quasi nichts,

meine Taktik dann immer: zurück zu allen Anfängen, hast du überhaupt schon je eine Query erfolgreich ausgeführt im aktuellen Kontext?
vergiss alle Schleifen, Arrays, WHER-Bedingungen, Ergebnis-Auswertungen usw.
fange ganz einfach an:

- main-Methode
- Connection holen
- Statement
- Test-SQL: "SELECT * FROM Daten"

funktioniert das ja oder nein?
wenn nicht funktioniert irgendeine andere Tabelle, irgendeine andere Art von SQL?
wenn nicht hast du ein grundsätzliches Problem, JDBC-Treiber, Datenbank und so (welche?)

wenn doch, dann arbeite dich langsam hoch zu den Querys, die du benötigst,
falls sie in einem Programmteil gehen, im anderen nicht mehr, schaue nach ob zwischendurch die Connection oder das Statement mehrfach benutzt oder geschlossen wurde oder irgendein ähnlich geänderter Umstand

(edit: der Text 'SQLException: Invalid handle' wurde inzwischen entfernt ;) )
 

java007

Bekanntes Mitglied
ich kriege leider diese Fehlermeldung :(

Exception in thread "main" java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
at test.main(test.java:29)

so habe ich die treiber eingestellt

[Java=42]
Connection con;
con = DriverManager
.getConnection("jdbc:eek:dbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:/Dokumente und Einstellungen/XXXXX/Desktop/Daten.mdb");
Statement stmt = con.createStatement(); // usw.......
[/Java]
 
Zuletzt bearbeitet:
S

SlaterB

Gast
hier
zugriff auf access-datenbank mit jsp oder java | aus Forum Java | wer-weiss-was
steht

"[Microsoft][ODBC Microsoft Access Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.
Hint: The cause of this error is usually that your query contains a reference to a field which does not exist. You should verify that the fields included in your query exist and that you have specified their names correctly."

bist du sicher mit den Felder-Namen?
wie gesagt erstmal ohne WHERE und mit SELECT * testen


edit:
was ist NR für ein Datentyp? eine Zahl mit Anführungszeichen ist sicher auch nicht so toll
http://www.java-forum.org/datenbankprogrammierung/21116-java-access-fehler-parameteruebergbe.html
 
Zuletzt bearbeitet von einem Moderator:

java007

Bekanntes Mitglied
Hallo SlaterB,

vielen dank für deine schnelle Antwort und deine Bemühung. Ich habe den Fehler mit dem Feld gefunden :)
Allerdings wird nun nach der ersten Ausgabe die schleife abgebrochen :( und zwar mit dieser Meldung
wäre echt super wenn du dafür auch ein Tipp hättest :)


Exception in thread "main" java.sql.SQLException: Invalid handle
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
at test.main(test.java:36)

Gruß,
 
S

SlaterB

Gast
zu Invalid Handle war ja meine Antwort von 10:39 gedacht,
wenn die erste Query geht, musst du vielleicht in der Schleife jeweils auch ein neues Statement-Objekt erzeugen
 
S

SlaterB

Gast
rs.close() zu entfernen ist aber keine gute Idee, denn rs.close() für sich ist immer eine gute Idee,
wenn danach das Statement nicht mehr zu verwenden ist, dann close() auch das (zur Sicherheit)
und nimm ein neues Statement,
das ist nun wirklich nicht so viel Arbeit und viel schöner

edit: stmt.close();
hattest du ja auch schon, ok dass könntest du verzögern bis auf nach der Schleife,
wenn nur rs.close() innerhalb der Schleife zusammen mit einem Statement für die ganze Schleife hinkommt
 

java007

Bekanntes Mitglied
Hallo SlaterB,

danke für die Infos :)
ich habe mich vorhin falsch ausgedrückt :)
rs.close() habe ich in eine tiefere Schleife verschoben und dann hats geklappt

Viele Grüße :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
T JPA: Nach String statt Primärschlüssel suchen Datenbankprogrammierung 9
M Oracle String aus Column splitten und x Rows daraus erstellen Datenbankprogrammierung 1
C String in Datenbank einfügen Datenbankprogrammierung 11
E Conversion failed when converting date and/or time from character string. Datenbankprogrammierung 3
D String übergeben Datenbankprogrammierung 7
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
M SQLite Suche nach String Datenbankprogrammierung 4
C Objekte aus DB in Strings umwandeln also von List<Objekt> in String Datenbankprogrammierung 6
A ByteArray zu String dann wieder zu ByteArray Datenbankprogrammierung 2
D HSQLDB SQL ORDER BY nur mit fixen String machbar? Datenbankprogrammierung 16
F Dynamischen String in SQL Statement einbinden Datenbankprogrammierung 9
N String Array in While Schleife befüllen Datenbankprogrammierung 2
H Derby: SYSCS_UTIL.SYSCS_EXPORT_QUERY mit String Abfrage in wehre-Klausel nicht möglich Datenbankprogrammierung 3
R Zeichenkette in String zählen Datenbankprogrammierung 3
P GWT Applikation-The method forName(String) is undefined for the type Class Datenbankprogrammierung 10
B Mysql speichert keine 0 alls String Datenbankprogrammierung 11
B MySQL Datenbank Connection als String zurückgeben Datenbankprogrammierung 7
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
I DB-Zelleninhalt mit String vergleichen klappt nicht Datenbankprogrammierung 3
I SQL_Abfrage-Ergebnis (ResultSet) in String[] speichern Datenbankprogrammierung 29
M SQL String Datenbankprogrammierung 2
G Sonderzeichen im String codieren Datenbankprogrammierung 4
K Date in SQL-String konvertieren Datenbankprogrammierung 3
B String aus txtDatei auslesen und in Datenbank schreiben. Datenbankprogrammierung 8
T Mittels SQL-String ein Berechnung vornehmen Datenbankprogrammierung 2
C SQL String zwei Tabellen vergleichen und gleiche Zeile löschen Datenbankprogrammierung 25
C Split String für SQl query Datenbankprogrammierung 10
F ResultSet to String[] Datenbankprogrammierung 3
S Connection String MS Access mit Systemdatenbank / Arbeitsgruppeninformationsdatei Datenbankprogrammierung 4
G Hilfe um String an Datenbank zu schicken Datenbankprogrammierung 3
M SELECT longtext -> als String behandeln Datenbankprogrammierung 6
G Daten aus ResultSet in String-Liste Datenbankprogrammierung 13
padde479 Connection String Oracle Datenbankprogrammierung 5
T SQL Date String in java.util.Date umwandeln Datenbankprogrammierung 3
G ResultSet: String mit Anführungszeichen einlesen Datenbankprogrammierung 8
A JPA + @OneToMany + String ArrayList Datenbankprogrammierung 4
S Char to String aus DB Datenbankprogrammierung 2
Q string Vergleich Datenbankprogrammierung 2
M Konvertierung eines Ojects to String Datenbankprogrammierung 3
M Preparedstatement SQL-string auslesen Datenbankprogrammierung 13
D INSERT String enthält ' wie kann man das Escapen? Datenbankprogrammierung 4
G MsSQL | Statement.execute(String s) Datenbankprogrammierung 3
G CLOB to String - Encoding Problem Datenbankprogrammierung 6
D String[][] Array in Access Datenbank speichern Datenbankprogrammierung 5
K Hibernate: Liste von String-Werten Datenbankprogrammierung 2
S String probleme Datenbankprogrammierung 3
R Nach String in MySQL datenbank suchen Datenbankprogrammierung 7
M Datum's String in MSSQL oder MySQL wie konvertieren ? Datenbankprogrammierung 3
T String in DB(Oracle) schreiben mit Leerzeichen Datenbankprogrammierung 4
K ResultSet: Erste Zeile ausgeben, Datensatz in String speiche Datenbankprogrammierung 13
E Fehler bei String-Insert in MySQL-DB Datenbankprogrammierung 8
L Datum (String) in MySQL-Tabelle (date) speichern Datenbankprogrammierung 4
C SQLException wenn String auf VARCHAR geschrieben wird Datenbankprogrammierung 10
T Methode getColumnIndex(String columnName) ? Datenbankprogrammierung 6
K string literal too long was tun ? Datenbankprogrammierung 9
B Wie kann ich eine Jtable mit Inhalt einer SQL Abfrage füllen Datenbankprogrammierung 14
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
Zrebna PostgreSQL-Query in eine MicrosoftSQL-Query konvertieren - chatGPT hilft nur bedingt. Datenbankprogrammierung 3
T Spring MongoDB: Prüfen ob bereits eine Email existiert Datenbankprogrammierung 15
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Probleme bei Überführung von SQL-Code in eine HQL-Abfrage Datenbankprogrammierung 3
Zrebna Wie mittels PL/SQL eine Datenbankverbindung blockieren? Datenbankprogrammierung 6
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
Kirby.exe Eine Tabelle updaten Datenbankprogrammierung 16
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
Z Aus zwei bestehenden Table eine zusätzliche Gemeinsame machen (JavaFX) Datenbankprogrammierung 21
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
pkm PostgreSQL Auf eine Spalte kann aus einem Teil der SQL-Aussage nicht zugegriffen werden Datenbankprogrammierung 3
F Mapping einer SQL Abfrage in eine Klasse Datenbankprogrammierung 4
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
F Create Table - Habe ich eine schwache Entität erzeugt ? Datenbankprogrammierung 4
Dimax MySQL Trigger für eine Spalte Datenbankprogrammierung 5
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
P JSP - Daten aus 2 Tabellen in eine neue Tabelle einfügen Datenbankprogrammierung 1
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
S MySQL JTable zeigt nach Datenbankabfrage eine Spalte zu viel an Datenbankprogrammierung 0
Thallius MySQL Tabelle splitten aber wie eine abfragen? Datenbankprogrammierung 10
B MySQL Eine Art Sverweis Datenbankprogrammierung 27
O HSQLDB Eine Entität, mehrere Tabellen Datenbankprogrammierung 8
B SQL-Statement Prüfen ob eine Spalte einen Wert enthält Datenbankprogrammierung 2
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
L0MiN Wie kann ich eine bestimmte Seite aus verschiedenen Excel-Tabellen in eine neue Exceldatei kopieren? Datenbankprogrammierung 1
N Wie in Java Zugriffe und Updates auf eine Datenbank regeln ? Datenbankprogrammierung 1
E Wie kann ich aus diesem XML eine XMLTABLE-Funktion bauen? Datenbankprogrammierung 3
E Wie kann man mit einer ID-Spalte über eine Parameterübergabe auf eine Seite verweisen? Datenbankprogrammierung 17
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
M Warum ist es suboptimal viele Indexe auf eine Datenbanktabelle zu setzen? Datenbankprogrammierung 4
L Datenmodell erstellen für eine Nutzertanalyse Datenbankprogrammierung 1
serjoscha MySQL Eine Instanz von eigenem DBWrapper -> Fehler durch mehrfachbenutzung möglich? Datenbankprogrammierung 2
S HSQLDB Verbieten eines update auf eine bestimmte reihe Datenbankprogrammierung 4
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
H Grosse Menge an Daten in eine Datenbank Datenbankprogrammierung 32
P MySQL eine richtige Datenbank für einen routenplaner erstellen Datenbankprogrammierung 2
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
S SqlObject - eine objektorientierte Art SQL-Statements zu schreiben. Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben