# java.util.ArrayList to java.sql.Array



## moessi91 (17. Feb 2011)

Ich habe auf meiner Datenbank eine Array und möchte in diese von meinem Programm eine ArrayList hineinspeichern. Habe auch schon auf google uns sonst wo gesucht aber leider nichts gefunden auch hier im forum nicht. Also weiß vl jemand rat? bekomme immer nur error error error
Das ganze kommt in ein Prepared Statement

```
ArrayList<Integer> array = new ArrayList<Integer>();
			for(int i = 0; i < reservierung.getAlKunden().size();i++)
			{
				array.add(reservierung.getAlKunden().get(i).getId());
			}
                        

			ps.setArray(9, (java.sql.Array) array);
```


----------



## bone2 (17. Feb 2011)

```
error
```

?! gibt getalkunden ein array zurück?
was für fehler hast du?

edit: du kansnt doch nicht einfach eine ArrayList auf Array casten

```
ps.setArray(9, array.toArray());
```


----------



## moessi91 (17. Feb 2011)

Ja es gibt ein Array zurück aber das tut ja dabei nichts zur sache da ich mir da nur die ID´s heraushole und in ein neues Array speichere da ich nur die id´s brauche. 
Das mit toArray wirt mir gleich den fehler:
_method setArray in interface java.sql.PreparedStatement cannot be applied to given types
  required: int,java.sql.Array
  found: int,java.lang.Object[] 
_
und wenn ich jetzt den Cast wie oben mache dann kommt folgender Fehler beim Ausführen:
Exception in thread "main" java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.sql.Array


----------



## Blakh (17. Feb 2011)

Sollte so etwas nicht gehen?


```
Integer[] data = arrayList.toArray(new Integer[arrayList.size()]);
connection.createArrayOf(typeName, data);
```

connection ist deine java.sql.Connection

Gefunden bei:
http://download.oracle.com/javase/6/docs/api/java/sql/Connection.html#createArrayOf%28java.lang.String,%20java.lang.Object[]%29


----------



## moessi91 (27. Feb 2011)

Ja hat funktioniert danke


----------

