Platzhalter in WHERE Klausel

Status
Nicht offen für weitere Antworten.
Hallo zusammen, ich versuche gerade über eine JSP eine Datenbankabfrage zu starten. Im Code ist die DB-Klasse stark vereinfacht zu sehen. Die ID ziehe ich aus einem Listenfeld. Das funktioniert soweit ganz gut. Mein Problem ist nun aber, dass ich das Feld bei dem Wert 0 so belegen möchte, dass mir alle ID's angezeigt werden.

Also in die Richtung "Select * from x WHERE id = egal". Ist das möglich? Wenn ja wie?

Ich hab beim Datum ein ähnliches Problem gehabt, aber da konnte ich dann eben bei Nichtauswahl default- Werte setzen wie "0000-00-00" bzw. das aktuelle Datum. Ich hoffe, es ist verständlich, wo mein Problem liegt.

Code:
public Vector getAuswertung2(int id) throws SQLException{
		
		Vector auswertung = new Vector();
		if (stat39 == null) {
			stat39 =
				DBConnection.connection.prepareStatement(
						"SELECT * from x WHERE id = ? ");
		}
		
		stat39.setInt(1, id);
		ResultSet res = stat39.executeQuery();
		
		while(res.next()){
			
			Vector a = new Vector();
			a.add(res.getString("feld1"));
			a.add(res.getString("feld2"));	
			auswertung.add(a);	
			System.out.println(a);
		}
		res.close();
			
		return auswertung;
	}

Vielen Dank schonmal für Antworten und Grüße
Stefan
 
Dann müsste ich verschiedene PrepareStatements erstellen, oder?

Ich habe hier ein Formular, wo man z.b. ein "ab"- Datum, ein "bis"- Datum, einen Titel, einen Regisseur etc. eingeben kann. Also kurzum eine Suchmaske. Wenn ich nun jeden Fall abdecken würde, was ausgefüllt wurde und was nicht, wären das relativ viele Statements. Oder geht das auch einfacher/ anders?
 
R

Roar

Gast
*kopfkratz* du kannst auch WHERE id = id schrieben wenn dir das angenehmer ist
 
J

JavaBeginner2

Gast
hi

Ich glaube er meint das hier.

DBConnection.connection.prepareStatement(
"SELECT * from x ");

Schöne Grüße

JavaBeginner2
 

Caffè Latte

Bekanntes Mitglied
Hi,

Problem ist jetzt, dass anstelle des "?" ein Integer-Wert erwartet wird. Da lässt sich meines Wissen nach auch nicht die Zeichenfolge id ohne Hochkommas reinschreiben. Du kommst also um zwei Statements nicht drumherum.
 
S

SlaterB

Gast
SELECT * from x WHERE id >= ? AND id <= ?;


entweder mit genauem Wert (2x) oder mit -MAX und +MAX verwenden? ;)

-----------

SELECT * from x WHERE id = ? OR 1 = ?;

entweder mit genauem Wert + 17.000 oder mit 2x 1 verwenden? ;)
 
R

Roar

Gast
poff, achso

edit: mir is grad eingefallen, man könnte es einfach so machen:

WHERE id = ?

statement.setString(1, "123"); für id 123
oder
statement.setString(1, "%"); für alle
 

Caffè Latte

Bekanntes Mitglied
... dann muss er eben doch zwei Statements schreiben. So komplex ist das ja nun auch wieder nicht:


Code:
     Vector auswertung = new Vector();
      String Sql = "SELECT * FROM x";
      if (id != 0) Sql += " WHERE id = ?";
      if (stat39 == null) {
         stat39 =
            DBConnection.connection.prepareStatement(Sql);
      }
      ....

Frohe Ostern ...
 
R

Roar

Gast
???:L nein er braucht nur ein statement, siehe meine letzten posts :autsch:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C HSQLDB Platzhalter in SELECT Datenbankprogrammierung 6
J PLatzhalter unter SQL mit Java und Access Datenbankprogrammierung 2
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
J Mehrere WHERE Werte benutzen Datenbankprogrammierung 2
B JPA -> Dynamische WHERE Clause / SQL Injection möglich? Datenbankprogrammierung 11
J Hibernate One-To-One mit Where Klausel Datenbankprogrammierung 6
D Fälle bei WHERE unterscheiden Datenbankprogrammierung 5
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
A WHERE datetime < (util.Date | sql.Date | sql.Timestamp | dateString) Datenbankprogrammierung 2
M Variable in SQL SELECT * FROM ... WHERE mithilfe von PreparedStatement benutzen? Datenbankprogrammierung 28
R Derby/JavaDB Select Statement Where bedingung will nicht ganz! Datenbankprogrammierung 4
B HSQLDB Probleme mit Select...Where Abfrage Datenbankprogrammierung 16
N Prepared Statement mit unbekannter Anzahl von Where-Clauses Datenbankprogrammierung 30
C MySQL Abfrage mit flexibler WHERE bedingung Datenbankprogrammierung 10
K Unkown Column in where clausel Datenbankprogrammierung 2
Y JPQL WHERE != Objekt Datenbankprogrammierung 10
J where Abfrage auf ein mysql date feld Datenbankprogrammierung 5
M Select * from mydaten where ... Datenbankprogrammierung 4
M Mysql Delete ohne Where Klausel untersagen Datenbankprogrammierung 8
M SQL-Abfrage mit where-Bedingung Datenbankprogrammierung 2
W Where-ähnliche abfrage in objektorientierter Datenbank Datenbankprogrammierung 5
G Frage zu SQL "WHERE IN (1, 2, 3. , N)" Datenbankprogrammierung 8
H Derby: SYSCS_UTIL.SYSCS_EXPORT_QUERY mit String Abfrage in wehre-Klausel nicht möglich Datenbankprogrammierung 3
K SQL Inner Join - On Klausel Datenbankprogrammierung 10
M SQL - Dynamisch die Tabelle in From-Klausel bestimmen Datenbankprogrammierung 11
@ Like-Klausel; NPE bzw. leeres ResultSet Datenbankprogrammierung 4
V "Order By"-Klausel -> Dumme Sortierung Datenbankprogrammierung 4

Ähnliche Java Themen


Oben