• 第三周进度博客


    第三周
    所花时间 15左右
    代码量 700行左右
    博客量 2篇
    学到的知识点 可视化图表的使用、条件查询,分页

    摘要、本周主要通过视频资源学习了条件查询和分页显示的一些操作,条件查询不是很难,通过获得的查询条件拼接sql语句即可,实现了通过姓名模糊查询,通过性别精确查找。分页操作比较难,通过编写了一个PageBean,提供了相关的构造方法。在给出的代码中有具体的解释

    一、代码部分

    1、分页功能的相关代码

    PageBean

    复制代码
    package entity;
    import java.util.ArrayList;
    import java.util.List;
    
    public class PageBean<T> {
        
        //当前页
        private int currentPage;
        //当前页显示的条数
        private int currentCount;
        //总条数
        private int totalCount;
        //总页数
        private int totalPage;
        //每页显示的数据
        private List<T> list = new ArrayList<T>();
        
        
        public int getCurrentPage() {
            return currentPage;
        }
        public void setCurrentPage(int currentPage) {
            this.currentPage = currentPage;
        }
        public int getCurrentCount() {
            return currentCount;
        }
        public void setCurrentCount(int currentCount) {
            this.currentCount = currentCount;
        }
        public int getTotalCount() {
            return totalCount;
        }
        public void setTotalCount(int totalCount) {
            this.totalCount = totalCount;
        }
        public int getTotalPage() {
            return totalPage;
        }
        public void setTotalPage(int totalPage) {
            this.totalPage = totalPage;
        }
        public List<T> getList() {
            return list;
        }
        public void setList(List<T> list) {
            this.list = list;
        }
    }
    复制代码

    Servlet

    复制代码
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("utf-8");
    
            PageService service = new PageService();
            // 模拟当前是第一页
            String currentPageStr = request.getParameter("currentPage");
            if (currentPageStr == null)
                currentPageStr = "1";
            int currentPage = Integer.parseInt(currentPageStr);
            // 认为每页显示2条
            int currentCount = 2;
            PageBean<User> pageBean = null;
            pageBean = service.findPageBean(currentPage, currentCount);
    
            request.setAttribute("pageBean", pageBean);
            request.getRequestDispatcher("all.jsp").forward(request, response);
        }
    复制代码

    service

    复制代码
    package service;
    
    import java.util.ArrayList;
    import dao.PageDao;
    import entity.PageBean;
    import entity.User;
    
    
    public class PageService {
        
        PageDao dao=new PageDao();
    
        public PageBean<User> findPageBean(int currentPage, int currentCount) {
    
            //目的:就是想办法封装一个PageBean 并返回
                    PageBean pageBean = new PageBean();
                    //1、当前页private int currentPage;
                    pageBean.setCurrentPage(currentPage);
                    //2、当前页显示的条数private int currentCount;
                    pageBean.setCurrentCount(currentCount);
                    //3、总条数private int totalCount;
                    int totalCount = dao.getTotalCount();
                    System.out.println(totalCount);
                    pageBean.setTotalCount(totalCount);
                    //4、总页数private int totalPage;
                    /*
                     * 总条数        当前页显示的条数    总页数
                     * 10        4                3
                     * 11        4                3
                     * 12        4                3
                     * 13        4                4
                     * 
                     * 公式:总页数=Math.ceil(总条数/当前显示的条数)
                     * 
                     */
                    int totalPage = (int) Math.ceil(1.0*totalCount/currentCount);
                    pageBean.setTotalPage(totalPage);
                    //5、每页显示的数据private List<T> productList = new ArrayList<T>();
                    /*
                     * 页数与limit起始索引的关系
                     * 例如 每页显示4条
                     * 页数        其实索引        每页显示条数
                     * 1        0            4
                     * 2        4            4
                     * 3        8            4
                     * 4        12            4
                     * 
                     * 索引index = (当前页数-1)*每页显示的条数
                     * 
                     */
                    int index = (currentPage-1)*currentCount;
                    
                    ArrayList<User> findlist = dao.findlist(index,currentCount);
                    pageBean.setList(findlist);
                    System.out.println("66");
                    return pageBean;
        }
        }
    复制代码

    dao

    复制代码
    public int getTotalCount() {
            // TODO 自动生成的方法存根
            int ans = 0;
            String sql = "select * from user";
            Connection con = null;
            Statement state = null;
            ResultSet rs = null;
            con = DBUtil.getConn();
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    ans++;
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            DBUtil.close(rs, state, con);
            return ans;
        }
    
        public ArrayList<User> findlist(int index, int currentCount) {
            // TODO 自动生成的方法存根
            ArrayList<User> list = new ArrayList<>();
            String sql = "select * from user limit ?,?";
            Connection con = null;
            Statement state = null;
            PreparedStatement ps;
            con = DBUtil.getConn();
            ResultSet rs1 = null;
            try {
                ps = con.prepareStatement(sql);
                ps.setInt(1, index);
                ps.setInt(2, currentCount);
                rs1 = ps.executeQuery();
            } catch (SQLException e1) {
                // TODO 自动生成的 catch 块
                e1.printStackTrace();
            }
            User bean = null;
            try {
                while (rs1.next()) {
                    String name = rs1.getString("name");
                    String sex = rs1.getString("sex");
                    String school = rs1.getString("school");
                    String adress = rs1.getString("address");
                    bean = new User(name, sex, school, adress);
                    list.add(bean);
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            DBUtil.close(rs1, state, con);
            return list;
        }
    复制代码

    2、条件查询的相关代码

    servlet

    复制代码
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("utf-8");
            String name = request.getParameter("name");
            String sex = request.getParameter("sex");
            String adress = request.getParameter("adress");
    //        System.out.println(name);
    //        System.out.println(sex);
            User bean = new User(name, sex, adress);
            PageBean<User> pageBean = null;
            UserService service = new UserService();
            pageBean = service.find(bean);
            request.setAttribute("pageBean", pageBean);
            request.getRequestDispatcher("all.jsp").forward(request, response);
        }
    复制代码

    dao

    复制代码
    public ArrayList<User> find(User bean) {
            ArrayList<User> list = new ArrayList<>();
            String sql = "select * from user where ";
            if ((bean.getName() != null && !bean.getName().trim().equals(""))
                    && (bean.getSex() != null && !bean.getSex().trim().equals(""))) {
                sql += "name like '%" + bean.getName() + "%' and sex like '%" + bean.getSex() + "%'";
            } else if (bean.getName() != "") {
                sql += "name like '%" + bean.getName() + "%'";
            } else if (bean.getSex() != "") {
                sql += "sex ='" + bean.getSex() + "'";
            }
            if (bean.getName() == "" && bean.getSex() == "") {
                sql = "select * from user";
            }
            Connection con = null;
            Statement state = null;
            ResultSet rs = null;
            con = DBUtil.getConn();
            User beans = null;
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    String name = rs.getString("name");
                    String sex = rs.getString("sex");
                    String school = rs.getString("school");
                    String adress = rs.getString("address");
                    beans = new User(name, sex, school, adress);
                    list.add(beans);
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            DBUtil.close(rs, state, con);
            return list;
        }
    复制代码
  • 相关阅读:
    hdu2063 匈牙利算法 二分最大匹配模版题
    经典dp 编辑距离
    新博客的第一道题 蓝桥杯 蚂蚁感冒
    cv.GaussianBlur参数选择 && contrast stretching
    大数据 week2 Hadoop and HDFS
    大数据 week2 Hadoop and HDFS
    抖音二面记录
    weight decay
    Pillow Image Filter
    UNSW CV第三课 下
  • 原文地址:https://www.cnblogs.com/zzmds/p/13085451.html
Copyright © 2020-2023  润新知