用?在准备好的陈述的where子句中

时间:2014-08-06 17:56:34

标签: mysql sql prepared-statement

我有一个方法可以从我的数据库中返回搜索结果的数组列表。

而不是:

Select * 
from employee 
where first_name like ? 

我宁愿使用:

Select * 
from employee 
where ? like ? 

但我不确定这是否可行?我在eclipse中编译它时没有错误,但它一直给我数组中的空白值。我有什么不对的吗?

这是一个方法,它给我一个空白值,当我在first_name喜欢的地方时它工作正常吗?所以我知道逻辑是有效的。

public static ArrayList<String> AdvanceSearchFirstName(String selected, String searchTerm) {


    String selectQuery = "select * from employee_info where ? like ?";  

     ArrayList<String> searchResults = new ArrayList<>();
    try {
            stmt = con.createStatement();

    PreparedStatement ps = con.prepareStatement(selectQuery);
    ps.setString(1, selected);
    ps.setString(2, '%'+searchTerm+'%');
    ResultSet rs = ps.executeQuery();

    while (rs.next()) {

        String firstName = rs.getString("first_name");
        String lastName = rs.getString("last_name");
        String studentNumber = rs.getString("employee_number");

        String combo = employeeNumber + " " + firstName + " " + lastName;

                    searchResults.add(combo);
                 }

    } catch (SQLException e) {
        e.printStackTrace();
    }
    return searchResults;
}

我查看过很多帖子,所以我很确定这个帖子还没有发布,但我很抱歉这是双重的。我是编程和sql的新手,所以任何帮助都表示赞赏。

0 个答案:

没有答案