SQL Abfrage mit Variable

Status
Nicht offen für weitere Antworten.

IceTi

Bekanntes Mitglied
Ich möchte eine Datenbank Abfrage machen, wo die WHERE Klausur komplett in einer Variable steht, nur irgendwie funktioniert das nicht und ich weiss nicht warum:

Code:
String filter2 = "WHERE art=Nachhilfe";	
SQL.setQuery("SELECT job_id FROM job_jobs "+filter2+"");

Habe es auch schon so versucht aber auch kein Erfolg:

Code:
String filter2 = "WHERE art=Nachhilfe";	
SQL.setQuery("SELECT job_id FROM job_jobs '"+filter2+"'");

Allerdings funktioniert es so:
Code:
String filter="Nachhilfe";
SQL.setQuery("SELECT job_id FROM job_jobs WHERE art='"+filter+"'");


Was mache ich falsch?
Danke
 
G

Guest

Gast
Versuch mal:
Code:
String filter2 = "WHERE art='Nachhilfe' ";   
SQL.setQuery("SELECT job_id FROM job_jobs "+filter2 );
 

IceTi

Bekanntes Mitglied
Geht leider auch nicht:

Code:
org.apache.jasper.JasperException: An exception occurred processing JSP page /job_uebersicht.jsp at line 28
 

Oni

Top Contributor
poste mal ein bisschen mehr code. das müsste eigentlich gehen.

das problem bei dem von dir geposteten code ist:

beim ersten hast du den Such-String nicht in anführungsstrichen.
beim zweiten hast du alles inklusive der where-clause in anführungsstrichen.

der von mir gepostet code müsste passen.

der syntax müsste so aussehen:
Code:
select spalte1 from tabelle where spalte1 = 'suchstring';
 

IceTi

Bekanntes Mitglied
Geht leider auch nicht, hier mal mehr Code:

Code:
	if(filter == null || filter.equals("keinFilter")){
		SQL.setQuery("SELECT job_id FROM job_jobs");	
	}else{
		String filter2 = "WHERE art=Nachhilfe";	
		//SQL.setQuery("SELECT job_id FROM job_jobs WHERE art='"+filter+"'");
		SQL.setQuery("SELECT job_id FROM job_jobs 'filter2'");
	}

Wie gesagt: Das auskommentierte klappt wunderbar...
 
S

SlaterB

Gast
edit: dein Code entspricht nicht dem von gast....



----------


wenn du mehr Informationen zur Exception hast, dann poste sie, ansonsten:
mach mal

try {


....


} catch (Throwable t) {
t.printStackTrace();
throw new RuntimeException("aus die Maus");
}

drumherum
 

Oni

Top Contributor
wie slaterb schon sagt, der Code entspricht nicht dem Code den ich gepostet habe

Code:
   if(filter == null || filter.equals("keinFilter")){
      SQL.setQuery("SELECT job_id FROM job_jobs");   
   }else{
      String filter2 = "WHERE art=Nachhilfe";   
      //SQL.setQuery("SELECT job_id FROM job_jobs WHERE art='"+filter+"'");
      SQL.setQuery("SELECT job_id FROM job_jobs 'filter2'");
   }

versuchs mal so:

Code:
   if(filter == null || filter.equals("keinFilter")){
      SQL.setQuery("SELECT job_id FROM job_jobs");   
   }else{
      String filter2 = "WHERE art='Nachhilfe'";   
      SQL.setQuery("SELECT job_id FROM job_jobs " + filter2);
   }
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben