2016-04-01 3 views
0

Ich habe zwei Tabellen Abteilungen und Mitarbeiter haben beide gemeinsame Spalte department_idAnzeige Zeilen in der Tabelle Mitarbeiter entsprechend der Benutzereingabe für Abteilungsnamen

Zuerst habe ich Abteilungsnamen aus Abteilungen Tabelle zweiten employee_id von Mitarbeitern Tabelle angezeigt. Jetzt meine Frage ist, ich Abteilung will Namen von Benutzer und vergleichen mit Abteilungs Tisch bekommen, wenn Namen zur Verfügung Ergebnis ist, sollte

import java.sql.*; 
    class OracleCon { 
    public static void main(String args[]) { 
     try { 
     //step1 load the driver class 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
     //step2 create the connection object 
      Connection con= DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:xe","hr","hr"); 
     //step3 create the statement object 
      Statement stmt = con.createStatement(); 
      ResultSet rs = stmt.executeQuery("select * from departments"); 
      while (rs.next()) { 
      String dname = rs.getString("DEPARTMENT_NAME"); 
      System.out.println(dname); 
      } 

     Statement stmt1 = con.createStatement(); 
     ResultSet rs1 = stmt1.executeQuery("select * from employees"); 
     while (rs1.next()) { 
     Integer eno = rs1.getInt("employee_id"); 
     System.out.println(eno); 

     } 
     con.close(); 
    } catch (Exception e) { 
     System.out.println(e); 

    } 
    } 
} 
+0

import java.sql. *; Klasse OracleCon { public static void main (String args []) { versuchen { // schritt1 Last der Fahrer Klasse Class.forName ("oracle.jdbc.driver.OracleDriver"); // step2 Erzeuge das Verbindungsobjekt Verbindung con = DriverManager.getConnection ("jdbc: oracle: dünn: @localhost: 1521: xe", "hr", "hr"); // step3 das Anweisungsobjekt erstellen Anweisung stmt = con.createStatement(); ResultSet rs = stmt.executeQuery ("* aus Abteilungen auswählen"); while (rs.next()) { Zeichenfolge dname = rs.getString ("DEPARTMENT_NAME"); System.out.println (dname); } – Sas

+0

Anweisung stmt1 = con.createStatement(); ResultSet rs1 = stmt1.executeQuery ("* von Mitarbeitern auswählen"); while (rs1.next()) { Ganzzahl eno = rs1.getInt ("employee_id"); System.out.println (eno); } con.close(); } catch (Ausnahme e) { System.out.println (e); } } } – Sas

+0

Schnipsel, die Sie als Kommentare geschrieben haben, sind völlig unlesbar (vielleicht Jon Skeet ist in der Lage, dies zu lesen, aber die meisten Benutzer hier sind nicht). Bearbeiten Sie Ihre Frage, um sie in den richtig formatierten Fragetext einzufügen. –

Antwort

0

für diese spezielle Abteilung Mitarbeiter-ID angezeigt werde Ich gehe davon aus, dass Ihre Mitarbeiter und Abteilungs Tabellen einen ausländischen -Schlüsselbeziehung (oder eine logische Schlüsselbeziehung), so dass employees.department_name = department.department_name. Ein einfacher Datenbank-Join sollte die Arbeit erledigen.

Wenn Sie nach dem Abteilungsnamen (oder einer anderen Variablen) suchen möchten, verwenden Sie ein PreparedStatement, kein Statement.

String sql = "select e.* from employee e, department d where d.department_name = ? and d.department_name=e.deparment.name");)// ? will be replaced by a parameter obtained from a user 

PreparedStatement stmt = con.prepareStatement(sql); 

stmt.setString(1, deptName); //deptName is obtained from the user 

ResultSet rs = stmt.executeQuery(); 
..... 
Verwandte Themen