SELECT Name= " " verhindern

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo ,

Ich habe ein Fenster mit mehreren Textfelder. In diesen Textfelder wird z.B. Name, Vorname, Plz, Ort…. eingetragen. Und in der Datenbank wird dann nach diesen Kriterien die Person gesucht.

Mein Problem ist es wenn ich z.B. bei Name :Muster eingebe und bei Vorname nix dann übergibt er bei mit den leeren String (bei Vorname) und Muster (bei Name) an die suche auf der Datenbank (SELCT …..) und findet natürlich keinen der Muster „ „ heißt.


Ich könnte auch viele Select abfragen schreiben aber da ich zu viele Parameter habe würde ich das nicht für sehr sinnvoll halten
z.B. 1 Abfrage suche wenn name == eingabe und vorname == eingabe
2 abfrage suche wenn vorname == eingabe
3 abfrage suche wenn name gleich == eingabe


Ich möchte Personen suchen wenn ich name, vorname, plz eingebendas er mir alles dazu findet oder z.B. wenn ich nur name eingebe soll er mir alle Datensätze mit diesen Namen (egal welcher Vorname ist) suchen.

Mein bisheriger Code

SQL-Abfrage
Code:
public ResultSet getPerson (String name, String vorname,Long postleitzahl){
    return eineDatenbankverbindung.execDatenAbfrage
           ("SELECT * FROM T_PERSONEN WHERE  Name = '"+name+"' AND Vorname= '"+vorname+"' AND Postleitzahl ='" + postleitzahl+"'"); 
  }// get Person

Übergebenen Werte aus den Textfelderern
Code:
public Vector suchePerson (String name, String vorname, Long postleitzahl){
    ResultSet einAbfrageErgebnis = einSQLInterface.getPerson(name, vorname,postleitzahl);
    Vector resultList = new Vector();
         try{
      while(einAbfrageErgebnis.next()){
        einePerson = new Person();
        einePerson.setName(einAbfrageErgebnis.getString(2));
        einePerson.setVorname(einAbfrageErgebnis.getString(3));
        einePerson.setPlz(einAbfrageErgebnis.getLong(4));
        einePerson.setOrt(einAbfrageErgebnis.getString(5));
        einePerson.setStrasse(einAbfrageErgebnis.getString(6));
        einePerson.setHausnr(einAbfrageErgebnis.getString(7));
        einePerson.setGeburtsjahr(einAbfrageErgebnis.getLong(10));
        einePerson.setTelDienst(einAbfrageErgebnis.getString(9));
        einePerson.setTelPrivat(einAbfrageErgebnis.getString(8));

        resultList.add(einePerson);
      }// while

      einAbfrageErgebnis.close();
    }
     catch (SQLException e){
      System.out.println("SQL-Fehler: " + e.getMessage());
     } //catch
   return resultList;
  }

Und in der gui übergebe ich halt die Werte aus den Textfeldern dieser such Methode

Danke euch schon im Voraus!
 

DP

Top Contributor
du musst die string-länge je schlagwort nach einem trim() prüfen und nur zeichenketten >3 zeichen oder so zulassen. ansonsten benutzermeldung, dass schlagwort zu kurz oder du ignorierst das schlagwort...
 
G

Gast

Gast
Ja und was habe ich dann davon

ich muss doch drei paramter übergeben an die suche
er sollt halt bei diesem selekt statement das "" nicht berücksichtigen
 

Bleiglanz

Gesperrter Benutzer
du musst dein select eben mit ifs zusammenbauen
Code:
einstringbuffer.append(" ... WHERE 1=1 ")
if(null!=name && name.trim().length()>1) 
{
    einstringbuffer.append(" AND name LIKE '").append(name).append("%'" );
}
if(null!=vorname && vorname.trim().length()>1)
{
//usw
 
G

Guest

Gast
Hmm habs probiert leider geht das nicht so richtig
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""

bekomm den Laufzeitfehler

Code:
  public ResultSet getPerson (String name, String vorname){
            sb.append("SELECT * FROM T_PERSONEN WHERE 1=1 ");
            if(name!=null && name.trim().length()>1){
              sb.append("AND Name LIKE '").append(name).append("%'");
            }
            else if(vorname!=null && vorname.trim().length()>1){
              sb.append("AND Vorname LIKE '").append(vorname).append("%'");
            }
          return eineDatenbankverbindung.execDatenAbfrage(sb.toString());
  }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
OnDemand Select * from bringt keine Rückgabe Datenbankprogrammierung 49
OnDemand Select vs Update ins blaue, was ist teurer? Datenbankprogrammierung 11
M JPA: select all mit unterschiedlichem Tablename Datenbankprogrammierung 2
A MySQL Select und Insert in Java Datenbankprogrammierung 15
J JPA: Wie sieht der select aus? Datenbankprogrammierung 2
D geänderte SELECT Abfragen Datenbankprogrammierung 15
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
T sqlite select Datenbankprogrammierung 12
D Oracle NullPointerException bei select mit Null Values Datenbankprogrammierung 5
F MySQL Was bedeuten die Einzelnen Zeichen in Select Querrys? Datenbankprogrammierung 1
J SQL SELECT mit einem Array Datenbankprogrammierung 1
J SELECT Abfrage/Suche Datenbankprogrammierung 4
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
M SQL-Exception trotz funktionierendem SELECT Datenbankprogrammierung 4
U PostgreSQL SELECT Statement Datenbankprogrammierung 5
L Select Anweisung wird falsch interpretiert Datenbankprogrammierung 3
C HSQLDB Platzhalter in SELECT Datenbankprogrammierung 6
I SELECT bei Datenbankverbindung Datenbankprogrammierung 6
C MySQL JPA - namedQuery (SELECT) -getResultList() - liefert falsches Ergebnis Datenbankprogrammierung 1
S select: alle ergebnisse ermitteln Datenbankprogrammierung 5
G SQLite SQLite Select für View vereinfachen/optimieren Datenbankprogrammierung 4
C SQL-Statement SELECT über 3 Tabellen Datenbankprogrammierung 5
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
W SELECT oder Programm-Logik Datenbankprogrammierung 10
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
T MySQL Dynamisch Suchen Select Datenbankprogrammierung 4
D ArrayList in Select Datenbankprogrammierung 12
N Select mit join Datenbankprogrammierung 3
F Oracle select sum() join select sum() Datenbankprogrammierung 9
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
R Oracle Performance bei SELECT mit vielen Reihen Datenbankprogrammierung 5
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
I Select-Statement optimieren Datenbankprogrammierung 14
M Variable in SQL SELECT * FROM ... WHERE mithilfe von PreparedStatement benutzen? Datenbankprogrammierung 28
R Derby/JavaDB Möglichkeit von einem Random Select! Datenbankprogrammierung 6
B Mehrfachschachtelung SELECT Datenbankprogrammierung 2
T MySQL Select: Zusammenfassen von Daten und bilden von Durchschnitt? Datenbankprogrammierung 4
GianaSisters MySQL Datenbank Select error Datenbankprogrammierung 5
R Select Statement als temporärer Table Datenbankprogrammierung 7
R Derby/JavaDB Select Statement Where bedingung will nicht ganz! Datenbankprogrammierung 4
R Derby/JavaDB Select TOP Statement geht nicht Datenbankprogrammierung 3
S MySQL Problem mit SELECT bzw encoding Datenbankprogrammierung 4
B HSQLDB Probleme mit Select...Where Abfrage Datenbankprogrammierung 16
F wie funktioniert if Statement in SELECT? Datenbankprogrammierung 2
J [Hibernate] Select Statement Datenbankprogrammierung 4
A SQLite SELECT von ungleichen Spaltenpaaren Datenbankprogrammierung 10
Eldorado MySQL SELECT mit GROUP BY und INNER JOIN Datenbankprogrammierung 2
M Hibernate JPQL SELECT optional? Datenbankprogrammierung 2
C Datenbank-Abfrage, if im Select Datenbankprogrammierung 9
G Aufruf von SELECT INTO Datenbankprogrammierung 8
B H2 PreparedStatement SELECT * FROM ? Datenbankprogrammierung 4
X Select Query auf Substring Datenbankprogrammierung 2
S Select eines bestimmten Datensatzes Datenbankprogrammierung 4
M Select * from mydaten where ... Datenbankprogrammierung 4
T Unerwartete Datenbankausgabe bei "select now()" (es wird ein .0 angehängt) Datenbankprogrammierung 5
M Probleme bei Select in Schleife Datenbankprogrammierung 7
G SELECT liefert leere Zeilen Datenbankprogrammierung 32
M SELECT longtext -> als String behandeln Datenbankprogrammierung 6
H Select in einem Select Datenbankprogrammierung 7
G Select- Abfrage Datenbankprogrammierung 19
S Insert mit Select Datenbankprogrammierung 6
G MSSQL Server SELECT Abfrage funktioniert nicht Datenbankprogrammierung 4
R SELECT aus hsqldb mit Parameter Datenbankprogrammierung 2
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
A Problem mit einem Select-Befehl Datenbankprogrammierung 5
E Neues select auf ein vorhandenes Resultset Datenbankprogrammierung 11
A SELECT-Anweisung liefert keine Datensätze zurück Datenbankprogrammierung 9
S Select über mehrere Datenbanksysteme Datenbankprogrammierung 14
P SELECT Datenbankprogrammierung 20
T select Abfrage in Java Integer speichern ? Datenbankprogrammierung 2
B fehler bei select befehl Datenbankprogrammierung 5
S Select von bis in DB2 Datenbankprogrammierung 8
S Select mit PreparedStatement Datenbankprogrammierung 2
E Ein If und ein SELECT in Oracle? Datenbankprogrammierung 2
T Select Statement auf Relation Datenbankprogrammierung 3
S PostgreSQL SELECT/UPDATE etc. Datenbankprogrammierung 4
4 Probleme mit Select abfrage Datenbankprogrammierung 4
G Fehler in der select-Abfrage Datenbankprogrammierung 3
N SELECT: Datensatz sperren Datenbankprogrammierung 6
isowiz SELECT SUM() Ergebnis in Java abfragen Datenbankprogrammierung 6
T LIMIT In SELECT Anweisung Datenbankprogrammierung 4
R Select und Insert in Schleife - Problem mit ResultSet Datenbankprogrammierung 2
G Syntax für Select - Abfrage mit Variablen Datenbankprogrammierung 39
J SELECT-Statement Datenbankprogrammierung 4
R Select auf der Konsole ausgeben Datenbankprogrammierung 2
D brauche mal kurz hilfe bei einem select-stmt Datenbankprogrammierung 6
G Select-Abfragen sind sehr langsam Datenbankprogrammierung 7
D HSQLSB SELECT Datenbankprogrammierung 9
Kotelettklopfer SQLite Verhindern von doppelter Statement Ausführung Datenbankprogrammierung 25
F MySQL Doppelte Einträge verhindern Datenbankprogrammierung 2
N SQL-Injection verhindern OHNE PreparedStatements Datenbankprogrammierung 11
P SQL Injection verhindern ohne z.B. prepareStatement Datenbankprogrammierung 2
D Mit Trigger Tupel löschen verhindern Datenbankprogrammierung 3
J OutOfMemoryError - Wie verhindern? Datenbankprogrammierung 4
G H2: Erstellen von Datenbanken verhindern Datenbankprogrammierung 2
G Doppeleinträge in Access auf anderem Weg verhindern. Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben