[英]Outputing certain elements from a returned database returned List
我正在查詢數據庫以根據輸入字符串返回值列表; 這些值列表將顯示在用戶的搜索框中。 問題是,我返回的列表顯示為對象而不是名稱列表。 隨附的代碼段說明了我的觀點
我的檢索方法
public List<EmployeeDetails> getEmployeeByName(String employeeName) {
List<EmployeeDetails> list=new ArrayList<EmployeeDetails>();
Connection c=null;
String sql=("SELECT * FROM employee_table WHERE UPPER(employeeName) LIKE ? ORDER BY employeeName");
try{
c = ConnectionHelper.getConnection();
PreparedStatement ps=c.prepareStatement(sql);
ps.setString(1, "%" + employeeName.toUpperCase() + "%");
ResultSet rs=ps.executeQuery();
while(rs.next()){
list.add(new EmployeeDetails (rs.getInt("employeeid"),
rs.getString("employeeName"),
rs.getString("employeeAddress"),
rs.getString("employeeAge"),
rs.getString("nationality"),
rs.getString("salaryRate")));
}
}catch (SQLException e) {
e.printStackTrace();
try {
throw new Exception(e);
} catch (Exception e1) {
e1.printStackTrace();
}
} finally {
ConnectionHelper.close(c);
}
return **list**;
}
我打算只用返回對象的名稱填充搜索框,而不用原始封裝的對象填充。 我該怎么辦? 任何幫助/指針將不勝感激
此方法的結果必須在某處使用。 無論在哪里,都需要執行以下操作:
class EmployeeDAO
{
// Your method doing data access
public List<EmployeeDetail> getEmployeeByName(String employeeName) {
...
return list;
}
}
class EmployeeController
{
public void searchByName( String employeeName )
{
List<EmployeeDetail> employeeDetails = employeeDao.getEmployeeByName( employeeName );
Map<String, EmployeeDetail> searchResults = new HashMap<String, EmployeeDetail>();
// Use employeeNames in the search box
for( EmployeeDetail employeeDetail : employeeDetails )
{
searchResults.put( employeeDetail.getEmployeeName(), employeeDetail );
}
// I don't know how to return objects for Flex/BlazeDS, so this is more Spring MVC style
view.put( "searchResults", searchResults );
}
}
另外兩個建議:
EmployeeDetails
類為EmployeeDetail
(單數)。 這樣, EmployeeDetail
對象的集合可以使用諸如employeeDetails
(復數)之類的名稱。 getEmployeesByName
因為您不能保證只有一名員工返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.