2016-04-29 52 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

回报每名
相关问题