zoukankan      html  css  js  c++  java
  • JDBC分页和模糊查询

    一.实现查询(结合 VO 对象实现)

    查询到的数据如何返回到页面
      首先需要将这些数据封装到一个对象中 (现充结果集中取得之后再封装到 VO 类对象中),
      在客户端可以根据对象使用 JSON 的解析或者使用其他方式显示到页面中 (比如说使用 jsp, 模板语言等实现)

    Demo: 实现模糊统计数据量/模糊分页查询

    public class TestMysql {
        //取得连接
        private static Connection conn =ConnectionUitl.getConnection();
        
        public static void main(String[] args) {
            System.out.println(selectCount("A"));
        }
        
        /**
         *    实现模糊统计数据量:
         * @param kw 模糊查询的关键字
         * @return
         */
        public static Integer selectCount(String kw) {
            String sql = "SELECT COUNT(*)"
                    + " FROM emp"
                    + "  WHERE ename LIKE ?";
            
            try {
                PreparedStatement pst = conn.prepareStatement(sql);
                pst.setObject(1, "%"+kw+"%");
                ResultSet rst = pst.executeQuery();
                rst.next(); //让指针往下移动才能获取结果集中的数据
                return rst.getInt(1);
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                ConnectionUitl.close(conn);
            }
            return 0;
        }
        
        /**
         *     实现模糊分页查询:
         * @param kw 模糊查询的关键字
         * @param cp 当前页
         * @param ls 每页显示的数据量
         * @return
         */
        public static List<Emp> selectSplitAll(String kw,Integer cp,Integer ls) {
            //准备 sql 语句
            String sql = "SELECT empno,ename,job,hiredate,sal,comm,mgr,deptno"
                    + " FROM emp"
                    + "  WHERE empno LIKE ? LIMIT ?,?";
            
            List<Emp> list = new ArrayList<Emp>();
            try {
                PreparedStatement pst = conn.prepareStatement(sql);
                //为占位符设置具体的值
                pst.setObject(1, "%"+kw+"%");
                pst.setObject(2, (cp-1)*ls);
                pst.setObject(3, ls);
                //执行 sql 语句
                ResultSet rst = pst.executeQuery();
                Emp vo = null;
                while (rst.next()) {
                    vo = new Emp();
                    //将结果集中的数据取得之后保存到 vo 对象中
                    vo.setEmpno(rst.getInt("empno"));
                    vo.setJob(rst.getString("job"));
                    vo.setSal(rst.getDouble("sal"));
                    vo.setComm(rst.getDouble("comm"));
                    vo.setDeptno(rst.getInt("deptno"));
                    vo.setHiredate(rst.getDate("hiredate"));
                    vo.setMgr(rst.getInt("mgr"));
                    //将每个对象保存到 List 集合
                    list.add(vo);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                ConnectionUitl.close(conn);
            }
            return list;
        }
    }
  • 相关阅读:
    clientX和clientY属性需要注意的地方
    事件冒泡 --- 仿select下拉框
    body和document的梗
    完美运动框架
    仿flash运动框架
    多物体运动框架
    Computed Styles
    悬浮框
    【一起驴友】公司笔试
    Client Dimensions , offsetHeight , scrollTop 属性详解
  • 原文地址:https://www.cnblogs.com/yslf/p/10731970.html
Copyright © 2011-2022 走看看