模糊查询理解
public static List<student> search(String name,String idc, String birthday) {
String sql = "select * from student where ";
if (name != "") {
sql += "name like '%" + name + "%'";
}
else if (idc != "") {
sql += "idc like '%" + idc + "%'";
}
else if (birthday != "") {
sql += "birthday like '%" + birthday + "%'";
}
else
{
}
List<student> list = new ArrayList<>();
Connection conn = DBUtil.getConn();
Statement state = null;
ResultSet rs = null;
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
student bean = null;
while (rs.next()) {
String id = rs.getString("id");
String idc2 = rs.getString("idc");
String name2 = rs.getString("name");
String born = rs.getString("born");
String phone = rs.getString("phone");
String birthday1 = rs.getString("birthday");
String major = rs.getString("major");
String beizhu = rs.getString("beizhu");
bean = new student(name2,idc2,born,phone,birthday1,major,beizhu);
bean.setId(id);
list.add(bean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, state, conn);
}
return list;
}
其中在查询表单中只有3个文本域
其中3个文本域是可以为空的
这样即使为空他也正常提交
然后在进行数据库的查询中
会对他的是否非空进行验证
然后衔接sql语句
最后进行sql语句的一个执行
然后返回结果