Student(3)——查询所有班级信息(下)

目录

1. dao层,取具体数据;

2. 封装JsonUtil,引入Json包;

3. web层,来封装获取数据;

4. 向前台页面输入封装,建一个ResponseUtil封装工具类;


前面我们把界面写好了。现在开始取数据;

1. dao层,取具体数据;

这里面主要包括分页显示列表的方法以及计算总记录数的方法;

package com.java.dao;

import com.java.util.PageBean;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class GradeDao {
    //分页显示
    public ResultSet gradeList(Connection con, PageBean pageBean)throws Exception{
        StringBuffer sb=new StringBuffer("select * from t_grade");
        if(pageBean!=null){
            sb.append(" limit "+pageBean.getStart()+","+pageBean.getRows());
        }
        PreparedStatement pstmt=con.prepareStatement(sb.toString());
        return pstmt.executeQuery();
    }

    //获取总记录数
    public int gradeCount(Connection con) throws Exception{
        String sql="select count(*) as total from t_grade";
        PreparedStatement pstmt=con.prepareStatement(sql);
        ResultSet rs=pstmt.executeQuery();
        if(rs.next()){
            return rs.getInt("total");
        } else{
            return 0;
        }
    }
}

 

2. 封装JsonUtil,引入Json包;

这里要将数据封装成Json格式的,因此写一个JsonUtil工具类;

首先要引入一些Json包;

 

package com.java.util;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

public class JsonUtil {
    /**
     * 返回的是一个JsonArray,将ResultSet改成JsonArray形式的,也就是字符串
     * @param rs
     * @return
     * @throws Exception
     */
    public static JSONArray formatRsToJsonArray(ResultSet rs)throws Exception{
        //获取纵向内容
        ResultSetMetaData md=rs.getMetaData();
        //得到纵列数
        int num=md.getColumnCount();
        JSONArray array=new JSONArray();


        while(rs.next()){
            JSONObject mapOfColValues=new JSONObject();
            for(int i=1;i<=num;i++){
                //纵向封装,封装键值对
                mapOfColValues.put(md.getColumnName(i), rs.getObject(i));
            }
            array.add(mapOfColValues);
        }
        return array;
    }
}

 

3. web层,来封装获取数据;

这里主要是对前台的数据进行一个封装,包括PageBean封装,JsonArray以及result封装等;

package com.java.web;

import com.java.dao.GradeDao;
import com.java.util.DbUtil;
import com.java.util.JsonUtil;
import com.java.util.PageBean;


import com.java.util.ResponseUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;

public class GradeListServlet extends HttpServlet {

    private DbUtil dbUtil=new DbUtil();
    private GradeDao gradeDao=new GradeDao();

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String page=request.getParameter("page");
        String rows=request.getParameter("rows");
        PageBean pageBean=new PageBean(Integer.parseInt(page),Integer.parseInt(rows));
        Connection con=null;
        try {
            con=dbUtil.getCon();
            JSONObject result=new JSONObject();
            JSONArray jsonArray=JsonUtil.formatRsToJsonArray(gradeDao.gradeList(con,pageBean));
            //获取总记录数
            int total=gradeDao.gradeCount(con);
            //返回每页大小以及总记录数
            result.put("rows",jsonArray);
            result.put("total",total);
            //向页面传送数据
            ResponseUtil.write(response,result);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                dbUtil.closeCon(con);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

 

4. 向前台页面输入封装,建一个ResponseUtil封装工具类;

这里主要是向前台传入数据,我们稍加封装一个格式问题;

package com.java.util;

import net.sf.json.JSONObject;

import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;

public class ResponseUtil {

    //向页面输入数据
    public static void write(HttpServletResponse response, JSONObject jsonObject)throws Exception{
        //消息格式
        response.setContentType("text/html;charset=utf-8");
        //io流
        PrintWriter out=response.getWriter();
        //向页面输送
        out.println(jsonObject.toString());
        out.flush();
        out.close();
    }
}

效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值