簡體   English   中英

從返回的數據庫返回的列表中輸出某些元素

[英]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 );
    }   
}

另外兩個建議:

  1. 重命名EmployeeDetails類為EmployeeDetail (單數)。 這樣, EmployeeDetail對象的集合可以使用諸如employeeDetails (復數)之類的名稱。
  2. 將您的方法重命名為getEmployeesByName因為您不能保證只有一名員工返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM