2017-01-02 22 views
0

Ich habe zwei Datenbanktabelle mit den gleichen Attributen. Ich möchte zwei SQL-Statements verwenden, die aus Tabelle 2 der Aktualisierungstabelle gelesen wurden.Verwenden Sie Variable in SQL-Stent anstelle von TableName

String tableName = ""; 
String value = request.getParameter("PageId"); 
if(value=="Alflah"){ 
    tableName = "PARKTABLEONE"; 
} 
if(value=="ParkN"){ 
    tableName = "PARKTABLE"; 
} 

One Statment:

ResultSet rs= st.executeQuery("Select * From " +tableName+ " WHERE ID = \'"+ login + "\' "); 

2. Statement:

String query = "update " + tableName + " set Place1 = ?, Place2 = ? WHERE ID = \'"+ login + "\'"; 

Also, ich möchte hier Tablename Variable verwenden. Zum Beispiel, wenn Tabellenname Alflah ist, sollte es von alflah gelesen werden Ist es möglich oder nicht? Bitte korrigieren Sie mich, wo ist mein Fehler ??

+2

Also, was ist das Problem? Was passiert, wenn Sie es versuchen? –

+3

Abgesehen von allem anderen sollten Sie Strings nicht vergleichen - siehe http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java –

+3

Randnotiz: Nicht verwandt mit Tabellenname ', Ihr Code ist offen für [SQL injection attacks] (http://bobby-tables.com) und harmlose Nicht-Angriffswerte. Verwenden Sie parametrisierte Abfragen. –

Antwort

1

Tablename ist leer, das ist, warum sagt es bei Fehlerspalte 17. Wenn WHERE bei 17 beginnt, dann muss es leer sein, nur die Zeichen zählen

+0

Ja, sein String-Wert wurde nicht aktualisiert, deshalb funktioniert –

+0

jetzt, ich habe den Wert tabellenname im vorherigen jsp gesetzt und dann diesen Wert mit request.getParameter ("tableName") erhalten; –

Verwandte Themen