2016-04-29 56 views
1

我想檢索所有名稱和從MySQL到Java的行數。到目前爲止,我只能檢索總行號,但我只能得到姓。這裏有什麼問題?如何從MySQL檢索所有名稱?

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

檢索所有名稱中使用的String []名稱,而不是字符串名稱;將您的方法返回類型更改爲String [] –

回答

1

您目前返回單個String,和你的方法遍歷所有的管理員名稱(但最後一行之後終止,所以這就是你的結果)。相反,建立名稱List並返回。您還可以使用try-with-resources closeclose您的Connection,StatementResultSet實例。像

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

的東西,這可能是有益的

private String names[]; 
int i = 0; 

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

然後你可以使用一個for循環中StaffManagement.java

回報每名
相關問題