Create Table mit PreparedStatement

Status
Nicht offen für weitere Antworten.

Samson_Miller

Bekanntes Mitglied
Ich würde gerne mittels eines PreparedStatement "PreparedStatement" eine neue Tabelle erstellen. Also folgendermaßen:

Code:
String createStatement = "CREATE TABLE ? ( ?,? ...)";
PreparedStatement ppSt= con.prepareStatement(createStatement);
ppSt.setString(1,"tabellenname");
ppSt.setString(2,"ID");
...

Allerdings ist erst zur Laufzeit klar, wie viele Spalten die Tabelle haben wird, daher die Punkte in der Klammer. Ist es möglich bei einem "PreparedStatement" den Tabellennamen offen zu lassen? Und wie kann ich unbesimmte anzahl an Spalten definieren?
 
Für sowas ist PreparedStatement gar nicht gedacht.
Schreib dir eine Klasse, die z.B. folgenden Aufruf möglich macht.
Code:
Statement stmt = new TableGenerator("tablename")
                .addField("id", Types.BIGINT)
                .addField("name", Types.VARCHAR, 64)
                .addField("costs", Types.DECIMAL, 10, 3, 0.0d)
                .addField("active", Types.BOOLEAN, false)
                .addConstraint("id", Constraint.PRIMARY_KEY)
                .addConstraint("name", Constraint.UNIQUE | Constraint.NOT_NULL)
                .addConstraint("costs", Constraint.NOT_NULL)
                .createStatement(Dialect.Oracle);
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben