20201208千锤百炼软工人

模糊查询理解

  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语句的一个执行

然后返回结果

原文地址:https://www.cnblogs.com/huangmouren233/p/14144672.html