Suchabfrage definieren

V

vanny

Gast
hi,

ich habe ein JFrame, mit diversen JTextFields, die als Sucheingabe und Ergebnisanzeige dienen sollen.
Dahinter steckt ne DB.
Nun zu meiner Frage:
Ich möchte, dass die Querys die zur Datenbank gesendet werden, alle Eingaben beinhalten, die gemacht wurden. Da ich am ende ca. 15 TextFields habe die mehr oder weniger genau mit Suchbegriffen gefüllt sein können und dann auch noch 1 oder auch gleich 10, je nach dem wieviel man vom "zu Suchenden" weiss, möchte ich gerne ne möglichst logische und saubere Herrangehensweise in Angriff nehmen.

Gibts da von eurer seite mal nen Schubs in die Richtige richtung? ^^

Meine Idee ist im Moment, jedem TextField nen intWert zu geben, so dass die Summe aller befüllten Felder immer ne eindeutige Konstellation für die Suchabfrage ergibt.
Diese dann aus ner XML geholt und mit den Eingabewerten befüllt und ab damit zur DB.

//edit : nochmal zum Verständnis...

TextField TF;^^

TF1 bekommt bei Befüllung den Wert 1
TF2 bekommt bei Befüllung den Wert 3
TF3 bekommt bei Befüllung den Wert 5

also wenn in das TF etwas eingetragen wurde, dann wird der passende intWert in einer Variable zusammenAddiert. (1+5 = 6)also TF1 und TF3 haben eine Eingabe.

TF4 wäre dann zBsp. 10; TF5 40; usw.....ich hoffe man versteht meinen Ansatz jetzt :p



Aber vieleicht (oder sogar ganz sicher :p) habt ihr noch ne andere Schicke Idee:oops:

Gruss Vanny

//noch ein Edit: Verdammt (( jetzt hat mich das olle Lesezeichen doch wieder in die falsche Rubrik gejagd((

bitte einmal zu Anfänger oder Datenbank:shock: Danke
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
die effizienteste eindeutige Id wäre ein Bitmuster,
1001100110,
bzw. 1 fürs erste Feld, 2 fürs zweite, 4, 8, 16 usw., diese addieren
für 15 Felder wären das maximal 2^15 oder 2^16 = 66.000, also relativ gut noch als normaler int zu verwalten

ob das jetzt deine Frage war weiß ich gar nicht, allgemein würde ich mit weniger Textfeldern anfangen (2 oder 3 statt 15)
und was immer du brauchst (Umwandlung in XML usw.) erstmal Schritt für Schritt umsetzen statt gleich fertige Frameworks zu suchen
 
Zuletzt bearbeitet von einem Moderator:
V

vanny

Gast
das mit dem Bitmuster is auch ne Idee, die werd ich mir mal genauer anschaun.
Zu deiner Beruhigung ^^ich arbeite zur Zeit mit 3 Feldern^^, weiss aber halt jetzt schon wieviele es am Ende werden müssen zumind fast xD.

Was mich eigntl. abschreckt ist eben die 2^16 , die ich ja letzlich alle in meiner XML vorbereiten müsste(kann man da noch von Faulheit sprechen?).

Meine Frage ist halt, ob´s da noch nen eleganteren Lösungsansatz gäbe.

Gruss Vanny
 

XHelp

Top Contributor
Was soll den in der XML überhaupt sein?
Falls ich dich richtig verstanden habe, hast du ja Felder wie "Vorname, Nachname, Bla1, Bla2" und es müssen in der Datenbank die Sätze ausgewählt werden, die den eingegebenen Kriterien entsprechen, oder?

P.S. 2^15 Möglichkeiten hast du so oder so, unabhängig von der Darstellung.
 
V

vanny

Gast
in der XML würd ich gerne die Querys für die SQL-DB vordefinieren ... und ich möchte halt gerne, dass aus jedem Eingabefeld gesucht werden kann.
also nur Vorname oder Vorname und Strasse, oder PLZ und Datum(auch wenn das vieleicht nich viel Sinn macht ^^) halt jede mögliche Kombination aus Suchangaben.
Ich hab schon die Hochschulbibo geplündert und arbeite die Literatur hier fleissig durch, aber zu diesem Thema stand bis jetzt nix drinn ((.

"XML und Java" hab ich mir grad erst geholt und bin daher noch nicht sehr tief im Stoff.
Ich suche nen Weg, mit dem ich wie oben beschrieben Wahllos Suchanfragen stellen kann und wenn ich diese irgendwo vordefinieren muss, dann möchte ich ein möglichst übersichtliches System benutzen, daher der Gedanke mit der XML.

Gruss Vanny
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
Du könntest die Abfrage auch dynamisch zusammensetzen, abhängig davon, ob ein Feld gefüllt ist oder nicht.
Oder willst Du alle möglichen Kombinationen in dem XML Vorhalten?
Bei 15 Feldern sind das doch recht viele.
 
V

vanny

Gast
Oder willst Du alle möglichen Kombinationen in dem XML Vorhalten?
Bei 15 Feldern sind das doch recht viele.

Naja, die Menge macht mir auch n bissl Angst, aber ich könnte die Anfragen auch unabhängig vom JavaCode optimieren.
Dynamisch wäre natürlich der Hammer.
Da ich die DB aber noch nicht habe (weil ich einfach noch nicht alle Angaben bekommen habe und die VorlageDB nur redundanten Mist enthält)wollte ich die Zeit nutzen und schonmal nach nem brauchbaren System Ausschau halten.
Je nach dem, was nacher für eine DB-Struktur entsteht werd ich entweder statisch oder dynamisch an die Sache rangehen.

Dieser Thread dient also nur dem Brainstorming, um zu vermeiden, dass ich das Rad nochmal erfinden muss ^^

//edit: Ich hab unter IBATIS bei Wiki nen schönen Beispielcode gefunden.
Daher noch die Frage, ist es sinnvoll auf das Framework zurückzugreifen?

Gruss Vanny
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
Ich selbst hab keine Erfahrung mit DB Frameworks - die wenigen DB Geschichten, die bei mir anfallen mache ich immer direkt.

Unabhängig davon musst Du auch mit dem Framework Deine Abfragen definieren - eventuell gibt's ja welche die das ein bisschen vereinfachen.

Aber da Du eh nicht weisst, was da genau auf Dich zu kommt, bietet sich m.M. der dynamische Ansatz an. (Hab jetzt nicht 2^15 ausgerechnet, kommt aber sicherlich eine grosse Zahl raus ;-))
 

XHelp

Top Contributor
Die Templates für alle möglichen Kombinationen gespeichert zu halten macht wenig Sinn. Die musst du ja erstmal erstellen. Manuell wirst du ein Weilchen dafür brauchen. Und wenn du es dir automatisch generieren lässt, dann brauchst du die nicht gespeichert halten, weil du ja jeder Zeit die generieren kannst (auch zur Laufzeit).
Im Endeffekt könnte es so aussehen:
Code:
sql = "SELECT * FROM `tbl` WHERE 1=1 "
wenn vornameFeld gesetzt ist, dann sql = sql + "AND `vorname`='"+vornameFeld.text+"'"
usw...
Im Endeffekt wirst du da eine fertige Query rauskriegen, die alles nötige Abfragen wird.

Eine andere überlegung wäre:
Code:
sql = "SELECT * FROM `tbl` WHERE `vorname` LIKE '%"+vornameFeld.text+"%' AND `nachname`LIKE '%"+nachnameFeld.text+"%';"
Wenn z.B. bei
Code:
nachnameFeld
nichts gesetzt ist, dann steht in der Query
Code:
LIKE '%%'
, was für beliebige Zeichenkette steht (nur kein null).

Sind aber alles eher Gedankenanstöße, als fertige Lösungsvorschläge
 
V

vanny

Gast
sql = "SELECT * FROM `tbl` WHERE `vorname` LIKE '%"+vornameFeld.text+"%' AND `nachname`LIKE '%"+nachnameFeld.text+"%';"

so hab ich das noch nie betrachtet ^^ dickes danke damit hat man ja quasi :"suchbegriff" und alle, das war mein denkfehler:applaus:

is sicherlich kein großes ding, aber du hast mich verstanden, und meine Kopfblockade genau getroffen xD
und darauf kommts doch an ^^

Dickes DANKE und Gruss Vanny
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Suchabfrage an Google Java Basics - Anfänger-Themen 7
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
B Hotkeys selbst definieren? Java Basics - Anfänger-Themen 1
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
S Instanzvariablen vom Typ einer Klasse definieren Java Basics - Anfänger-Themen 12
F Referenzvariable vom Typ "Integer" definieren. (Klausuraufgabe) Java Basics - Anfänger-Themen 5
B Log4J Pfad des Logfiles definieren Java Basics - Anfänger-Themen 6
F Enum via String definieren Java Basics - Anfänger-Themen 2
S Methode außerhalb der Klasse definieren Java Basics - Anfänger-Themen 5
Tom299 Log4j in jeder Klasse definieren? Java Basics - Anfänger-Themen 12
M Array definieren Java Basics - Anfänger-Themen 5
F Klasse Rechteck definieren Java Basics - Anfänger-Themen 21
T Arry definieren in 3 Dim. Java Basics - Anfänger-Themen 12
M Konstanten in einem Interface definieren Java Basics - Anfänger-Themen 1
T Klassen Funktion in einem Funktionsaufruf definieren Java Basics - Anfänger-Themen 3
K Eigenschaften Definieren für Produkte in einer Klasse Java Basics - Anfänger-Themen 6
M Methode mit beliebigen Parametern in abstrakter Klasse definieren Java Basics - Anfänger-Themen 8
B Definieren von package scope Java Basics - Anfänger-Themen 2
M Tabellenspaltengröße definieren Java Basics - Anfänger-Themen 4
J Funktion definieren und ausfuehren Java Basics - Anfänger-Themen 27
J Erste Schritte Zahlenbereich definieren Java Basics - Anfänger-Themen 2
F Klassen Eigene Klasse definieren Java Basics - Anfänger-Themen 4
P Variablen Guthaben anders definieren Java Basics - Anfänger-Themen 7
M variablen definieren Java Basics - Anfänger-Themen 9
P übergreifend variable definieren Java Basics - Anfänger-Themen 10
C variablen definieren? Java Basics - Anfänger-Themen 8
M ArrayList mit einer Grösse definieren Java Basics - Anfänger-Themen 9
capgeti Datentypen Static methoden aus Superklasse mit Generics definieren? Java Basics - Anfänger-Themen 9
G Mit Apache POI Kopfzeilen definieren Java Basics - Anfänger-Themen 11
K indexOf selbst rekursiv definieren Java Basics - Anfänger-Themen 4
B Exception vor catch Block definieren Java Basics - Anfänger-Themen 9
J diverse Begriff definieren Java Basics - Anfänger-Themen 6
J Begriff Lebensdauer definieren Java Basics - Anfänger-Themen 12
R Interface innerhalb einer Klasse definieren..? Java Basics - Anfänger-Themen 2
K konstruktur als public definieren Java Basics - Anfänger-Themen 11
M Eingabenanzahl definieren Java Basics - Anfänger-Themen 6
P String über mehrere Zeilen definieren Java Basics - Anfänger-Themen 3
S break Label als Spungmarken vorher definieren Java Basics - Anfänger-Themen 4
G mehrere delimiters definieren Java Basics - Anfänger-Themen 2
R textfeld größe definieren Java Basics - Anfänger-Themen 2
M größe für Applet definieren Java Basics - Anfänger-Themen 4
A neuen Datentyp (Digit) definieren Java Basics - Anfänger-Themen 12
J Arraylänge mit Ctor definieren Java Basics - Anfänger-Themen 2
R Reguläre Ausdruck definieren Java Basics - Anfänger-Themen 3
G Methoden + variablen als final definieren? Java Basics - Anfänger-Themen 3
D Definieren von Arrays Java Basics - Anfänger-Themen 3
D flash object mit JS definieren.auch für Java Applet? Java Basics - Anfänger-Themen 13
S Übergroße Arrays definieren Java Basics - Anfänger-Themen 10
G Variable in Interface definieren Java Basics - Anfänger-Themen 6
G args definieren in netbeans Java Basics - Anfänger-Themen 4
E Webmodul definieren Java Basics - Anfänger-Themen 2
S Formate für Strings definieren Java Basics - Anfänger-Themen 4
E Buttongröße definieren Java Basics - Anfänger-Themen 17
M eigene klasse definieren und verfügbar machen Java Basics - Anfänger-Themen 9
G Innere klasssen unde "extends" klassen definieren, Java Basics - Anfänger-Themen 2
T Variablen zur Laufzeit definieren Java Basics - Anfänger-Themen 3
M Eigenes Seitenformat definieren Java Basics - Anfänger-Themen 2
N Klasse definieren Java Basics - Anfänger-Themen 3
G Tastenkombinationen für Programm definieren Java Basics - Anfänger-Themen 6
N Packages definieren bzw. zum Classpath hinzufügen Java Basics - Anfänger-Themen 4
Dilandau konstante eigene farben im programm definieren Java Basics - Anfänger-Themen 13
Dilandau array aus konstanten definieren? Java Basics - Anfänger-Themen 6
W Klassen durch implements abstrakt definieren Java Basics - Anfänger-Themen 6
J "globale" variable definieren? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben