肯定有同学遇到和我一样的烦恼,当我有多个参数且有的参数为空的需要查询的时候你们是否还在用下面这种方式。
又或者这样
然后满心欢喜的等待接口返回的时候却给了一个大大的空 [ ];
正确方式是这样子的需要用到sql中的like方法
具体是意思这样子的mysql中的like什么意思,MySQL中Like是什么意思?_Chrix Bell的博客-CSDN博客
然后就是这样子了
String sql = "select * from student where name like ? and gender like ? and email like ? and province like ? and city like ? ";
之后再对?进行赋值
this.pstmt = this.conn.prepareStatement(sql);
this.pstmt.setString(1, "%"+name+"%");// %符号作为占位符把参数包裹起来
this.pstmt.setString(2, "%"+gender+"%");
this.pstmt.setString(3, "%"+email+"%");
this.pstmt.setString(4, "%"+province+"%");
this.pstmt.setString(5, "%"+city+"%");
ResultSet rs = this.pstmt.executeQuery();
while(rs.next()) {
int id = rs.getInt("id");
String Name = rs.getString("name");
String Gender=rs.getString("gender");
String Email=rs.getString("email");
String Province=rs.getString("province");
String City=rs.getString("city");
Student student= new Student(id,Name,Gender,Email,Province,City);
Data.add(student);
}
return Data;
这样就可以得到你想要的查询结果了
希望有所帮助!