2017-03-10 4 views
0
Ausführung
ResultSet rs; 
System.out.println("rs"); 
try 
{ 
    rs = j.getData("select ulevel from user where ulevel='"+eid+"'"); 
    System.out.println("try"); 
    //until this point it works properly. But after this point it doesn't work as I thought even though I logged in as a user whose user level (ulevel) is not admin. 
    if(rs.next()) 
    { 
     System.out.println("rs.next"); 
     if(rs.getString(2).equals("Admin")) 
     { 
      System.out.println("if admin"); 
      home.setEnabled(true); 
      job.setEnabled(true); 
      employee.setEnabled(true); 
      user.setEnabled(true); 
      machine.setEnabled(true); 
      branch.setEnabled(true); 
     } 
     else if(rs.getString(2).equals("user")) 
     { 
      System.out.println("else if"); 
      home.setEnabled(true); 
      machine.setEnabled(true); 
      System.out.println("user can't see"); 
     } 
     else 
     { 
      System.out.println("else"); 
     } 
    } 
} 
catch (Exception ex) 
{ 
    Logger.getLogger(Home_Page.class.getName()).log(Level.SEVERE, null, ex); 
} 

}Warum kommt, wenn nicht


Von oben Code habe ich versucht, die Anzahl der Seiten zu begrenzen, die durch einen normalen Benutzer, dessen Benutzerebene zu sehen ist (ulevel) ist Benutzer. Ich habe versucht,

jbutton_name.setvisible(false);  
jbutton_name.setEnabled(false)   

als well.But beide nicht wirksam sind für die Tasten für einen normalen Benutzer zu sperren.
Könnte jemand bitte mir helfen ??? Danke im Voraus.

+0

Werfen oder fangen Sie nicht "Exception". Nachschlagen "SQL injection attack". –

Antwort

4

die 2 in rs.getString(2) ist das Ergebnis Spaltenindex (von 1 für die ersten Spalte)

Aber wie Sie nur eine Spalte zurück von der

select ulevel from user 

Abfrage immer wird es nicht

arbeiten

per javadocs

SQLException - wenn der columnInde x ist nicht gültig; wenn ein Zugriff auf die Datenbank Fehler auftritt oder diese Methode auf einem geschlossenen Ergebnis genannt wird

Auch schlage ich vor, dass Sie ein PreparedStatement und setString verwenden Verkettung für Ihre SQL-Generierung zu vermeiden, die Möglichkeit, SQL-Injection-Angriffe zu vermeiden.

+0

Vielen Dank noch einmal ... Ich werde versuchen, diese .. :) – Jay

+0

cool. Wenn es funktioniert, akzeptiere diese Antwort. –

+0

Endlich konnte ich herausfinden, warum das nicht funktioniert. Wert von rs.next() = false. Deshalb. – Jay

1

Ich denke, Abfrage ergab kein Ergebnis. Wenn es dann tat, rs.getString (2) sollte eine Ausnahme auslösen.

+0

Danke. Du legst mich in die richtige Richtung. :) Der Wert meines rs.next() ist falsch. jetzt kämpfen, um es wahr zu machen. :) – Jay

+0

Cool. Kannst du das als Antwort akzeptieren? :-) – Keaz

+0

Ich bin neu hier. Können Sie mir bitte sagen, ob es in Ordnung ist, wenn ich auf den oberen Pfeil neben Ihrer Antwort geklickt habe? (Ich tat es) – Jay

Verwandte Themen