一.实现查询(结合 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; } }