Hallo,
stehe vor folgendem Problem:
Angenommen, es soll eine Filmdatenbank aufgebaut werden. Für jeden Film wird beispielsweise das Genre, das Jahr, die Schauspieler und das Produktionsland gespeichert. Dementsprechend hat das Datenbankschema mehrere Tabellen (bspw. eine für Genre, eine für Schauspieler, etc.).
In meiner Anwendung soll die Datenbank nach verschiedenen Kriterien gefiltert werden können.
Beispielsweise möchte ich mir alle Filme aus dem Genre "Drama" aus dem Jahr 2008 anzeigen lassen.
Meine Frage hierzu:
Wie setzt man das in Java am besten um?
Man möchste ja nicht für alle verschiedenen Kombinationen an Kriterien Prepared Statements schreiben müssen, also bspw.:
Wie macht man das üblicherweise, dass es dem Anwender möglich ist, die Datenbasis nach beliebig vielen (der X möglichen) Kriterien zu filtern?
stehe vor folgendem Problem:
Angenommen, es soll eine Filmdatenbank aufgebaut werden. Für jeden Film wird beispielsweise das Genre, das Jahr, die Schauspieler und das Produktionsland gespeichert. Dementsprechend hat das Datenbankschema mehrere Tabellen (bspw. eine für Genre, eine für Schauspieler, etc.).
In meiner Anwendung soll die Datenbank nach verschiedenen Kriterien gefiltert werden können.
Beispielsweise möchte ich mir alle Filme aus dem Genre "Drama" aus dem Jahr 2008 anzeigen lassen.
Meine Frage hierzu:
Wie setzt man das in Java am besten um?
Man möchste ja nicht für alle verschiedenen Kombinationen an Kriterien Prepared Statements schreiben müssen, also bspw.:
Java:
PreparedStatement s1 = "SELECT * FROM jahr NATURAL JOIN FILM NATURAL JOIN GENRE WHERE jahr.jahr = ? AND genre.bez = ?";
PreparedStatement s2 = "SELECT * FROM jahr NATURAL JOIN FILM NATURAL JOIN GENRE WHERE jahr.jahr = ?";
PreparedStatement s3 = "SELECT * FROM jahr NATURAL JOIN FILM NATURAL JOIN GENRE NATURAL JOIN ACTOR WHERE jahr.jahr = ? AND genre.bez = ? AND actor.name = ? ";
...
Wie macht man das üblicherweise, dass es dem Anwender möglich ist, die Datenbasis nach beliebig vielen (der X möglichen) Kriterien zu filtern?