Filtern nach mehreren Kriterien

0001001

Bekanntes Mitglied
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.:
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?
 

0001001

Bekanntes Mitglied
Ja, das wäre möglich.

Das Problem tritt IMHO in sehr vielen Anwendungen auf, daher meine Frage ob das dynamische Zusammenbauen der typischerweise gewählte Weg ist.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
ist es wirklich wichtig zu wissen, wie etwas typisch gemacht wird?
wenn du selber nicht auf Varianten kommst, nirgendwo je davon gelesen hast und dir auch nicht die passenden Suchbegriffe fürs Internet einfallen,
reicht dann nicht erstmal eine beliebige einfache eigene Umsetzung?

hier noch ein Link für Hibernate
Chapter 15. Criteria Queries
als mögliche Zielrichtung,
wobei das nur die komfortable Bedienung von außen ist, intern sicher auch mit vielen if/else oder ähnlichen Bausteinen umgesetzt
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T filtern nach expliziten Worten trotz LIKE '%Wort%' Datenbankprogrammierung 2
F Filtern innerhalb eines Resultset Datenbankprogrammierung 12
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
J Sql Anfrage nach einer Zeile beenden Datenbankprogrammierung 6
ruutaiokwu SQL-Dump nach MariaDB laden? Datenbankprogrammierung 6
T JPA: Nach String statt Primärschlüssel suchen Datenbankprogrammierung 9
Thallius MySQL jdbc schließt Verbindung nach vielen Request von selber Datenbankprogrammierung 8
S MySQL JTable zeigt nach Datenbankabfrage eine Spalte zu viel an Datenbankprogrammierung 0
D MySQL Suche nach Max Value in einer Tabelle Datenbankprogrammierung 7
M SQLite Suche nach String Datenbankprogrammierung 4
G PostgreSQL Nach Monaten auf einmal ClassNotFound-Exception Datenbankprogrammierung 3
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
J SQLite Datenverlust nach beenden des Programmes Datenbankprogrammierung 21
J Fehlende DatenbankView nach einbeziehen von JDBC Datenbankprogrammierung 3
B Leerzeichen nach Umlaut -> Sichtbar erst nach Query! Datenbankprogrammierung 6
D Zeit von SQL nach Java Datenbankprogrammierung 2
M DB-Zugriff funktioniert nach JAR-Erstellung nicht mehr Datenbankprogrammierung 3
AssELAss Oracle Suche nach Umlauten Ä und Ae ermöglichen Datenbankprogrammierung 11
G HSQLDB Inserts/Updates sind nach Neustart der Anwendung Datenbankprogrammierung 1
S MySQL Nach wiederholtem Update falsche Werte (im Speicher?) Datenbankprogrammierung 1
Z PDF nach Formate sortieren Datenbankprogrammierung 3
A Nach Export mysql Verbindung zur Datenbank nicht möglich, was tun? Datenbankprogrammierung 7
F Java SQL Syntax Error erst nach mehrmaligen Aufrufen Datenbankprogrammierung 3
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2
C Programm wird nach DB-Eintrag nicht weitergeführt Datenbankprogrammierung 5
E Abfrage nach existierender SQL-Tabelle Datenbankprogrammierung 7
P MySQL Verbindung nach außen sehr langsam Datenbankprogrammierung 4
S Nochmals: ID ermitteln nach Insert Datenbankprogrammierung 2
P JPA- Entities bleiben nach dem Löschen (unsichtbar?) in der Datenbank Datenbankprogrammierung 6
GianaSisters MS SQL unter Netbeans OK - nach konvertieren Absturz Datenbankprogrammierung 6
R SQL Abfrage, je nach ausgewählten Parametern Datenbankprogrammierung 11
I Zugriff auf Datenbank nach Erstellen einer Executable Jar Datei verweigert Datenbankprogrammierung 10
M Datenbankeintrag bleibt nach Löschen in JSP vorhanden Datenbankprogrammierung 8
E Nach Server wechsel Datenbank fehler ?!? Datenbankprogrammierung 3
F SQL ordnen nach zueinander in Verhältnis gesetzten Spaltenwerten Datenbankprogrammierung 11
J SQL: Sortierung nach Wortlänge Datenbankprogrammierung 2
Java.getSkill() Datensatz / Tupel automatisch nach xy Tagen / Stunden löschen Datenbankprogrammierung 7
T JPA: NullPointerException nach persist Datenbankprogrammierung 3
T Eintragung in einer Spalte nach Abfrage Datenbankprogrammierung 11
E Hibernate Session closed nach Transaction commit? Datenbankprogrammierung 7
K Rundungsfehler bei Gleitkommazahlen von Java nach SQL Datenbankprogrammierung 2
B Spaltennamen von MySQL Datenbank nach Java auslesen Datenbankprogrammierung 10
alexpetri Problem mit jdbc MS Access / nach 670 inserts ist schluss. Datenbankprogrammierung 4
tfa Apache DBCP: Reconnect nach Timeout? Datenbankprogrammierung 3
M mySQL zugriff funktionert nach ca4 stündiger laufzeit nicht Datenbankprogrammierung 6
G Hilfe: Werte sind alle x2 (oder mehr) nach JOIN Datenbankprogrammierung 13
M sql-code für suche in tabelle nach höchster transaktionsnr Datenbankprogrammierung 12
T ibatis + "generated p-key" nach insert? Datenbankprogrammierung 24
G Herausfinden des Primary Keys nach INSERT-Kommando? Datenbankprogrammierung 4
T Tabellen aus Datenbank 1 nach Datenbank 2 Datenbankprogrammierung 2
C Resultset nach connection close weiterreichen Datenbankprogrammierung 5
E JDBC, ForwardOnly bei ResultSet nach Uebergabe Datenbankprogrammierung 4
G Suchen nach Autowerten in Access-DB Datenbankprogrammierung 20
D JAVA hängt nach SQL Abfrage Datenbankprogrammierung 7
I Nach export zur .jar keine verbindung mehr Datenbankprogrammierung 7
M Datenbankverbindung bricht nach ca. 12 Stunden Verbindung ab Datenbankprogrammierung 3
R Nach String in MySQL datenbank suchen Datenbankprogrammierung 7
M Daten von MySQL nach MSSql probleme beim schreiben Datenbankprogrammierung 3
G File nach Blob konvertieren ? Datenbankprogrammierung 6
M Abfrage trennt Ergbnis eines Atrributes nach den Leerzeichen Datenbankprogrammierung 4
F Treiber nachladen oder nach Bedarf Datenbankprogrammierung 4
P Primärschlüssel direkt nach der Eingabe wieder auslesen Datenbankprogrammierung 7
R MySQL Syntax für suche nach Textteil Datenbankprogrammierung 8
J Zahlungseingänge von mehreren Kunden wie am besten abbilden in der Datenbank ? Datenbankprogrammierung 8
E SQLite Datenbank durchsuchen mit mehreren Suchbegriffen Datenbankprogrammierung 10
S MySQL Befüllen von mehreren Spalten Datenbankprogrammierung 1
I JPA Liste mit mehreren Entitäten Datenbankprogrammierung 22
R Transaktionen von mehreren Anwendungen aus - JDBC Datenbankprogrammierung 3
M Problem mit mehreren Datasourcen Datenbankprogrammierung 3
D Oracle Funktion mit mehreren Out Parametern ausführen? Datenbankprogrammierung 3
L MySQL Datenbank beschreiben mit mehreren Threads Datenbankprogrammierung 18
S Embedded DB, die aus mehreren JVMs gestartet werden kann? Datenbankprogrammierung 10
H Group By mit mehreren Spalten Datenbankprogrammierung 2
S Verständnisproblem mit mehreren DAOs Datenbankprogrammierung 7
S Verkettung von Spalteninhalten aus mehreren Zeilen Datenbankprogrammierung 10
D aus mehreren sql tabellen matchen und sortieren Datenbankprogrammierung 6
P [Hibernate] Zwischentabelle mit mehreren Feldern Datenbankprogrammierung 7
C Hibernate-Mapping bei mehreren FK´s auf die selbe Tabelle Datenbankprogrammierung 12
J JDBC mit mehreren Threads. Datenbankprogrammierung 8
T [jdbc] einen Eintrag aus mehreren Tabellen löschen (Batch) Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben