2016-04-29 3 views
1

Ich möchte den ganzen Namen und die Nummer der Zeile von MySQL nach Java abrufen. Bisher konnte ich nur die gesamte Zeilennummer abrufen, aber ich bekomme nur den Nachnamen. Was ist hier falsch?Wie kann man den Namen von MySQL abrufen?

StaffManagement.java

adminAPI api= new adminAPI(); 
try { 
     int num= api.displayCheckBoxAndLabel(); 
     String allName= api.displayName(); 
     System.out.println(num+allName); 
} 

adminAPI

public int displayCheckBoxAndLabel() throws Exception // get the number of row 
    { 
     int count = 0; 
     String sql="Select count(*) AS adminID from admin"; 
     DatabaseConnection db = new DatabaseConnection(); 
     Connection conn =db.getConnection(); 
     PreparedStatement ps = conn.prepareStatement(sql); 
     ResultSet rs = ps.executeQuery(); 
     while(rs.next()) 
     { 
      count= rs.getInt("adminID"); 

     } 
     ps.close(); 
     rs.close(); 
     conn.close(); 
     return count ; 
    } 

    public String displayName() throws Exception // get all the name 
    { 
     String name = null; 
     String sql="Select name from admin"; 
     DatabaseConnection db = new DatabaseConnection(); 
     Connection conn =db.getConnection(); 
     PreparedStatement ps = conn.prepareStatement(sql); 
     ResultSet rs = ps.executeQuery(); 
     while(rs.next()) 
     { 
      name= rs.getString("name"); 

     } 
     ps.close(); 
     rs.close(); 
     conn.close(); 
     return name ; 
    } 
+1

zurückzukehren alle Namen verwenden String [] Namen anstelle von String abrufen Name; Ändern Sie den Rückgabetyp Ihrer Methode in String [] –

Antwort

1

Sie kehren zur Zeit ein einziges String und Ihre Methode iteriert alle des Admin-Namen (aber nach der letzten Zeile endet, also das ist dein Ergebnis). Erstellen Sie stattdessen einen List Namen und geben Sie das zurück. Sie können auch try-with-resources close bis close Ihre Connection, Statement und ResultSet Instanzen verwenden. So etwas wie

public List<String> displayName() throws Exception // get all the name 
{ 
    String sql = "Select name from admin"; 
    List<String> names = new ArrayList<>(); 
    DatabaseConnection db = new DatabaseConnection(); 
    try (Connection conn = db.getConnection(); 
      PreparedStatement ps = conn.prepareStatement(sql); 
      ResultSet rs = ps.executeQuery()) { 
     while (rs.next()) { 
      names.add(rs.getString("name")); 
     } 
    } 
    return names; 
} 
1

Dies könnte

private String names[]; 
int i = 0; 

while (rs.next()) { 
names[i] = rs.getString("name"); 
i++; 
} 

Dann hilfreich sein, Sie eine for-Schleife verwenden können jeden Namen in StaffManagement.java

Verwandte Themen