您的位置:首页 > Web前端

分页功能、从一个接口拿到数据并放到数据库,然后批量获取给到前端接口

2020-03-04 23:52 453 查看

1、使用情况:前端页面只需要点击后显示下一页即可(不需要显示“上一页”,“下一页”和"页码”)

  环境:SpringMVC、Hibernate、Spring

(1)前端需要jason格式的数据,如果前端想要分页获取数据。只需要传递传递两个参数即可。pageNo和pageSize。这里是将pageSize设为了固定值。

  

@SuppressWarnings({ "rawtypes", "unchecked" })
@RequestMapping("/getTtaList")
public void getttaList(HttpServletRequest request, HttpServletResponse response) {
// 初始化返回信息
MResultDto mResultDto = new MResultDto();
Integer pageSize=10;
try{
//从JSON取得参数
FromJacksonExt fromJackson = (FromJacksonExt) new JackSonUtil().fromJackson(request, FromJacksonExt.class);
//如果JSON数据为空,返回错误信息
if(fromJackson==null){
//参数传递错误
// 参数传递错误
mResultDto.setOpResultAndErrCode(Integer.parseInt(GetProperties.getProperties("Return_ERR")),
"ERROR_000", GetProperties.getResourceBundle("", "ERROR_000"));
}else{
List<KTA> ktaList = ktaService.findKtaList(fromJackson.getPageNo()*pageSize, pageSize);
mResultDto.setData(ktaList);
}
} catch (Exception e) {
// 出错并返回
mResultDto.setOpResultAndErrCode(Integer.parseInt(GetProperties.getProperties("Return_ERR")),
"ERROR_DEFAULT", GetProperties.getResourceBundle("", "ERROR_DEFAULT"));
logger.error("--------");
logger.error(StringUtil.getStackTrace(e));
}
// 返回JSon格式
try {
response.setContentType("application/json;charset=UTF-8");
response.getWriter().write(new JackSonUtil<MResultDto>().toJackson(mResultDto));
response.getWriter().flush();
response.getWriter().close();
} catch (Exception re) {
logger.error(StringUtil.getStackTrace(re));
}
}

 JackSonUtil是用于将前端传递过来的参数(GET、POST均可),转换成JSON格式。FromJacksonExt类已经创建好了很多个属性。例如pageNo、pageSize等,如果有需要的属性也可以添加进去。

  

DAO

//分页返回数据
@SuppressWarnings("unchecked")
@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
public List<KTA> findKtaList(int pageIndex, int pageSize) throws Exception {
String sql = "select  * from t_kta order by c_date desc limit :pageIndex,:pageSize ";
Query query = super.getSessionFactory().getCurrentSession().createSQLQuery(sql.toString());
query.setInteger("pageIndex", pageIndex);
query.setInteger("pageSize", pageSize);
List<KTA> list = query.list();
//		return query.setFirstResult((pageNo - 1) * pageSize).setMaxResults(pageSize).list();
return list;
}

  sql占位符。:即可,不需要再在:前添加参数名。

  

  

转载于:https://www.cnblogs.com/xiaotieblog/p/8330561.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
diebijiao8720 发布了0 篇原创文章 · 获赞 0 · 访问量 180 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐