分页查询人员

分页查询人员

  • Controller
//人员模块表现实现类
@WebServlet(
        name = "PersonnelController",
        urlPatterns = "/personnel.do",
        loadOnStartup = 0
)
public class PersonnelController extends HttpServlet {
    //表现层中获取逻辑层实现类
    private PersonnelService personnelService = PersonnelFactory.getPersonnelService();

    //定义Servlet运行方法, 接收客户端请求, 返回服务器响应
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //当前页面
        int current = 1;
        //每页条数
        int size = 10;
        //起始条数
        int start = (current - 1) * size;

        //封装查询参数
        Map<String, Object> params = new HashMap<>();
        params.put("start", start);
        params.put("size", size);

        //1.查询人员列表 queryByPage:分页查询
        List<Personnel> list = personnelService.queryByPage(params);
        //2.写入请求作用域
        request.setAttribute("list", list);
        //3.分发器跳转页面
        request.getRequestDispatcher("/view/personnel/list.jsp").forward(request, response);
    }
  • service
//人员模块逻辑层接口
public interface PersonnelService {
    //分页查询
    List<Personnel> queryByPage(Map<String, Object> params);
}
//人员模块逻辑层实现类
public class PersonnelServiceImpl implements PersonnelService {
    //逻辑层中获取数据层实现类
    private PersonnelDao personnelDao = PersonnelFactory.getPersonnelDao();

    //分页查询
    @Override
    public List<Personnel> queryByPage(Map<String, Object> params) {
        return personnelDao.queryByPage(params);
    }
}
  • dao
//人员数据层接口
public interface PersonnelDao {
    //分页查询
    List<Personnel> queryByPage(Map<String, Object> params);
}
//人员模块数据层实现类
public class PersonnelDaoImpl implements PersonnelDao {
    //构造方法
    public PersonnelDaoImpl() {
    }

    //懒汉模式
    private static PersonnelDaoImpl instance = null;

    public static PersonnelDaoImpl getInstance() {
        //双重校验锁:保证不会出现并发
        if (instance == null) {
            synchronized (PersonnelDaoImpl.class) {
                if (instance == null) {
                    instance = new PersonnelDaoImpl();
                }
            }
        }
        return instance;
    }

    //分页查询
    @Override
    public List<Personnel> queryByPage(Map<String, Object> params) {
        //查询数据库
        SqlSession session = MybatisUtils.openSession();
        //分页查询:两个参数:第一个找select语句,第二个找参数
        List<Personnel> list = session.selectList("personnel.queryByPage", params);
        session.close();
        return list;
    }
}
  • xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="personnel">

    <!--分页查询:parameterType:参数类型-->
      <select id="queryByPage" parameterType="Map" resultType="com.javakc.rms.personnel.entity.Personnel">
          select id,name,unit,card,grade,starting_date,state,contract,vehicles_subsidies,
          heating_subsidies,property_subsidies,health_insurance,endowment_insurance,pension_unemployment,
          occupational_pension,injury_fertility,reason from rms_personnel limit #{start},#{size}
      </select>
</mapper>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值