首页 > 解决方案 > 为什么我的代码不从我的数据库中检索值?

问题描述

我已经创建了一个用户类并与我的数据库建立了连接,但由于它包含我的私人详细信息而将其编辑了。

  public ArrayList<User> ListUsers(String ValToSearch)
     {
    ArrayList<User> usersList = new ArrayList<User>();

    Statement st;
    ResultSet rs;

    try{
        Connection con = getConnection();
        st = con.createStatement();
        String searchQuery = "SELECT ID, room_Type, host_Name, Neighbourhood WHERE ID=? AND room_Type=? AND host_Name=? AND Neighbourhood=? ) LIKE '%"+ValToSearch+"%'";
        rs = st.executeQuery(searchQuery);

        User user;

        while(rs.next())
        {
            user = new User(
                             rs.getInt("id"),
                             rs.getString("hname"),
                             rs.getString("rtype"),
                             rs.getString("area")
                            );
            usersList.add(user);
        }

    }catch(Exception ex){
        System.out.println(ex.getMessage());
    }

    return usersList;
}

// function to display data in jtable

标签: javasql

解决方案


你不是:

  • 使用 PreparedStatement
  • 使用查询创建 PreparedStatement
  • 为您的查询设置参数
  • 正确使用LIKE运算符

我建议看一下JDBC APIPreparedStatement 示例


推荐阅读