ArrayList in Select

dbit

Mitglied
hallo,
leider komme ich nicht weiter.
kann man ArrayList direkt in SQL statement irgendwie verwenden?
Z.B.:
Java:
String abfrage = "Select * from Tabelle where Feld in " + ArrayList;
:rtfm:
arraylist könnte über 1000 einträge beinhalten.
möchte mehrfachabfragen an die datenbank vermeiden.
 

VfL_Freak

Top Contributor
Moin,

so in dieser Form sicher nicht!
Durch wirst dann ggf. schon durch die Liste laufen müssen und die einzelnen Inhalte zu Deinem String hinzufügen müssen ...

Was hast Du denn damit genau vor ?

Gruß
Klaus
 

dbit

Mitglied
ich muss aus einer datenbank eine liste holen und mit der aus
einer anderen abfragen. duschleifen will ich ja vermeiden(performance und last auf db).
 

knucki

Aktives Mitglied
Sind es tatsächlich 2 Datenbanken, 2 verschiedene Schemen auf einer DB oder 2 Tabellen?

Java:
String abfrage = "Select * from Tabelle where Feld in " + ArrayList;

Hier fehlen auf jeden Fall Klammern. Als Hilfe, könnte dir eine Methode dienen, mit der du aus einer ArrayList einen kommaseparierten String zurückbekommst...

private static String commaSeparatedListText(List<E> list){
String text = "";
for(E s:list){
text += s.toString + ",";
}
return text.substring(0,text.length()-1);
}

Oder so
 
Zuletzt bearbeitet:
G

Gast2

Gast
Wenn du prepared statements nutzt und statt der Liste nen Array hättest könntest du folgendes machen:

Code:
SELECT * FROM tabelle WHERE feld IN ?
Und dann folgende Methode nutzen:
PreparedStatement (Java 2 Platform SE v1.4.2)
Dann sollte dein Java Array zu nem SQL Array werden.

Händisch müsste das etwa so aussehen:
Code:
SELECT * FROM tabelle WHERE feld IN (1,2,3,4,5,6,7,8,9)
(wenn feld eine Integer Spalte ist)
 

dbit

Mitglied
@knucki, ja es sind zwei unterschiedlichen DB´s. aber dein ansatz ist interessant.
@EikeB, habe ich auch gedacht, aber ich habe noch nicht geprüft ob odbc/db das unterstützt. muss erst prüfen.

so jetzt erst ab ins lab.:rtfm:
 

dbit

Mitglied
Wenn du prepared statements nutzt und statt der Liste nen Array hättest könntest du folgendes machen:

Code:
SELECT * FROM tabelle WHERE feld IN ?
Und dann folgende Methode nutzen:
PreparedStatement (Java 2 Platform SE v1.4.2)
Dann sollte dein Java Array zu nem SQL Array werden.

Händisch müsste das etwa so aussehen:
Code:
SELECT * FROM tabelle WHERE feld IN (1,2,3,4,5,6,7,8,9)
(wenn feld eine Integer Spalte ist)


Hallo EikeB,
irgendwie komme ich mit preparedstatement nicht weiter.
Code:
prestmt = con.prepareStatement(query);
Code:
prestmt.setArray(1, Teilenummer);
Teilenummer wird aus einer anderen Klasse geliefert.
ich bekomme immer diese Meldung:

##############################################
##############################################
##############################################
method setArray in interface java.sql.PreparedStatement cannot be applied to given types;
required: int,java.sql.Array
found: int,java.lang.String[]
reason: actual argument java.lang.String[] cannot be converted to java.sql.Array by method invocation conversion
##############################################
##############################################
##############################################
 
S

SlaterB

Gast
die Fehlermeldung ist doch vergleichsweise deutlich?

schaue dir an was PreparedStatement dort als Parameter verlangt
PreparedStatement (Java Platform SE 6)

ich selber habe das noch nicht benutzt, stehe mutmaßlich genau vor demselben Problem wie du,
scheitere ich auch oder bin ich einfach zu klug (und andersrum du dann zu ..)? ;)
wohl kaum bis auf einen Kniff und dann Frage des Fleiß:
mit 'preparedstatement setarray example' kann man in Suchmaschinen schnell was finden
 

dbit

Mitglied
hallo.
wenn ich aus resultset ein array erzeuge
Code:
sqlArray = rs.getArray(1);
und
als parameter an die andere klasse übergeben
Code:
prestmt.setArray(1, sqlArray);
bekomme dann diese meldung:

Exception in thread "main" java.lang.UnsupportedOperationException
at sun.jdbc.odbc.JdbcOdbcResultSet.getArray(JdbcOdbcResultSet.java:4396)


langsam komme ich ins schleudern.
 
G

Gast2

Gast
Die Methode wird nicht unterstützt:

http://javasourcecode.org/html/open-source/jdk/jdk-6u23/sun/jdbc/odbc/JdbcOdbcResultSet.java.html hat gesagt.:
Java:
    public Array getArray (
        int i)
        throws SQLException
    { throw new UnsupportedOperationException(); }
 
S

SlaterB

Gast
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N MySQL Datenbankabfrage oder Arraylist? Datenbankprogrammierung 2
G ArrayList aus Verschiedenen klasse füllen Datenbankprogrammierung 5
M Oracle Vector zu ArrayList casten (.getResultList()) Datenbankprogrammierung 11
H Aus Arraylist in Textfeld schreiben Datenbankprogrammierung 4
D Hibernate: ArrayList in DB speichern und auslesen Datenbankprogrammierung 4
S ArrayList Datenbank [i]?? Datenbankprogrammierung 13
J ArrayList sortieren. Datenbankprogrammierung 12
J ArrayList überschreiben Datenbankprogrammierung 3
S ResultSet in ArrayList ablegen Datenbankprogrammierung 17
A JPA + @OneToMany + String ArrayList Datenbankprogrammierung 4
K problem mit resultset->arraylist Datenbankprogrammierung 11
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
OnDemand Select * from bringt keine Rückgabe Datenbankprogrammierung 49
OnDemand Select vs Update ins blaue, was ist teurer? Datenbankprogrammierung 11
M JPA: select all mit unterschiedlichem Tablename Datenbankprogrammierung 2
A MySQL Select und Insert in Java Datenbankprogrammierung 15
J JPA: Wie sieht der select aus? Datenbankprogrammierung 2
D geänderte SELECT Abfragen Datenbankprogrammierung 15
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
T sqlite select Datenbankprogrammierung 12
D Oracle NullPointerException bei select mit Null Values Datenbankprogrammierung 5
F MySQL Was bedeuten die Einzelnen Zeichen in Select Querrys? Datenbankprogrammierung 1
J SQL SELECT mit einem Array Datenbankprogrammierung 1
J SELECT Abfrage/Suche Datenbankprogrammierung 4
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
M SQL-Exception trotz funktionierendem SELECT Datenbankprogrammierung 4
U PostgreSQL SELECT Statement Datenbankprogrammierung 5
L Select Anweisung wird falsch interpretiert Datenbankprogrammierung 3
C HSQLDB Platzhalter in SELECT Datenbankprogrammierung 6
I SELECT bei Datenbankverbindung Datenbankprogrammierung 6
C MySQL JPA - namedQuery (SELECT) -getResultList() - liefert falsches Ergebnis Datenbankprogrammierung 1
S select: alle ergebnisse ermitteln Datenbankprogrammierung 5
G SQLite SQLite Select für View vereinfachen/optimieren Datenbankprogrammierung 4
C SQL-Statement SELECT über 3 Tabellen Datenbankprogrammierung 5
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
W SELECT oder Programm-Logik Datenbankprogrammierung 10
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
T MySQL Dynamisch Suchen Select Datenbankprogrammierung 4
N Select mit join Datenbankprogrammierung 3
F Oracle select sum() join select sum() Datenbankprogrammierung 9
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
R Oracle Performance bei SELECT mit vielen Reihen Datenbankprogrammierung 5
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
I Select-Statement optimieren Datenbankprogrammierung 14
M Variable in SQL SELECT * FROM ... WHERE mithilfe von PreparedStatement benutzen? Datenbankprogrammierung 28
R Derby/JavaDB Möglichkeit von einem Random Select! Datenbankprogrammierung 6
B Mehrfachschachtelung SELECT Datenbankprogrammierung 2
T MySQL Select: Zusammenfassen von Daten und bilden von Durchschnitt? Datenbankprogrammierung 4
GianaSisters MySQL Datenbank Select error Datenbankprogrammierung 5
R Select Statement als temporärer Table Datenbankprogrammierung 7
R Derby/JavaDB Select Statement Where bedingung will nicht ganz! Datenbankprogrammierung 4
R Derby/JavaDB Select TOP Statement geht nicht Datenbankprogrammierung 3
S MySQL Problem mit SELECT bzw encoding Datenbankprogrammierung 4
B HSQLDB Probleme mit Select...Where Abfrage Datenbankprogrammierung 16
F wie funktioniert if Statement in SELECT? Datenbankprogrammierung 2
J [Hibernate] Select Statement Datenbankprogrammierung 4
A SQLite SELECT von ungleichen Spaltenpaaren Datenbankprogrammierung 10
Eldorado MySQL SELECT mit GROUP BY und INNER JOIN Datenbankprogrammierung 2
M Hibernate JPQL SELECT optional? Datenbankprogrammierung 2
C Datenbank-Abfrage, if im Select Datenbankprogrammierung 9
G Aufruf von SELECT INTO Datenbankprogrammierung 8
B H2 PreparedStatement SELECT * FROM ? Datenbankprogrammierung 4
X Select Query auf Substring Datenbankprogrammierung 2
S Select eines bestimmten Datensatzes Datenbankprogrammierung 4
M Select * from mydaten where ... Datenbankprogrammierung 4
T Unerwartete Datenbankausgabe bei "select now()" (es wird ein .0 angehängt) Datenbankprogrammierung 5
M Probleme bei Select in Schleife Datenbankprogrammierung 7
G SELECT liefert leere Zeilen Datenbankprogrammierung 32
M SELECT longtext -> als String behandeln Datenbankprogrammierung 6
H Select in einem Select Datenbankprogrammierung 7
G Select- Abfrage Datenbankprogrammierung 19
S Insert mit Select Datenbankprogrammierung 6
G MSSQL Server SELECT Abfrage funktioniert nicht Datenbankprogrammierung 4
R SELECT aus hsqldb mit Parameter Datenbankprogrammierung 2
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
A Problem mit einem Select-Befehl Datenbankprogrammierung 5
E Neues select auf ein vorhandenes Resultset Datenbankprogrammierung 11
A SELECT-Anweisung liefert keine Datensätze zurück Datenbankprogrammierung 9
S Select über mehrere Datenbanksysteme Datenbankprogrammierung 14
P SELECT Datenbankprogrammierung 20
T select Abfrage in Java Integer speichern ? Datenbankprogrammierung 2
B fehler bei select befehl Datenbankprogrammierung 5
S Select von bis in DB2 Datenbankprogrammierung 8
S Select mit PreparedStatement Datenbankprogrammierung 2
E Ein If und ein SELECT in Oracle? Datenbankprogrammierung 2
T Select Statement auf Relation Datenbankprogrammierung 3
S PostgreSQL SELECT/UPDATE etc. Datenbankprogrammierung 4
4 Probleme mit Select abfrage Datenbankprogrammierung 4
G Fehler in der select-Abfrage Datenbankprogrammierung 3
N SELECT: Datensatz sperren Datenbankprogrammierung 6
isowiz SELECT SUM() Ergebnis in Java abfragen Datenbankprogrammierung 6
T LIMIT In SELECT Anweisung Datenbankprogrammierung 4
R Select und Insert in Schleife - Problem mit ResultSet Datenbankprogrammierung 2
G SELECT Name= " " verhindern Datenbankprogrammierung 5
G Syntax für Select - Abfrage mit Variablen Datenbankprogrammierung 39
J SELECT-Statement Datenbankprogrammierung 4
R Select auf der Konsole ausgeben Datenbankprogrammierung 2
D brauche mal kurz hilfe bei einem select-stmt Datenbankprogrammierung 6
G Select-Abfragen sind sehr langsam Datenbankprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben