ssm 存储过程分页

缺乏、安全感 2022-06-07 04:24 432阅读 0赞

分页存储过程:

CREATE OR REPLACE PROCEDURE prc_query

  1. (p\_tableName in varchar2, --表名
  2. p\_strWhere in varchar2, --查询条件
  3. p\_orderColumn in varchar2, --排序的列
  4. p\_orderStyle in varchar2, --排序方式
  5. p\_curPage in out number, --当前页
  6. p\_pageSize in out number, --每页显示记录条数
  7. p\_totalRecords out number, --总记录数
  8. p\_totalPages out number, --总页数
  9. v\_cur out pkg\_query.cur\_query) --返回的结果集

IS

v_sql VARCHAR2(1000) := ‘’; —sql语句

v_startRecord Number(4); —开始显示的记录条数

v_endRecord Number(4); —结束显示的记录条数

BEGIN

—记录中总记录条数

v_sql := ‘SELECT TO_NUMBER(COUNT(*)) FROM ‘ || p_tableName || ‘ WHERE 1=1’;

IF p_strWhere IS NOT NULL or p_strWhere <> ‘’ THEN

  1. v\_sql := v\_sql || p\_strWhere;

END IF;

EXECUTE IMMEDIATE v_sql INTO p_totalRecords;

—验证页面记录大小

IF p_pageSize < 0 THEN

  1. p\_pageSize := 0;

END IF;

—根据页大小计算总页数

IF MOD(p_totalRecords,p_pageSize) = 0 THEN

  1. p\_totalPages := p\_totalRecords / p\_pageSize;

ELSE

  1. p\_totalPages := p\_totalRecords / p\_pageSize + 1;

END IF;

—验证页号

IF p_curPage < 1 THEN

  1. p\_curPage := 1;

END IF;

IF p_curPage > p_totalPages THEN

  1. p\_curPage := p\_totalPages;

END IF;

—实现分页查询

v_startRecord := (p_curPage - 1) * p_pageSize + 1;

v_endRecord := p_curPage * p_pageSize;

v_sql := ‘SELECT * FROM (SELECT A.*, rownum r FROM ‘ ||

  1. '(SELECT \* FROM ' || p\_tableName;

IF p_strWhere IS NOT NULL or p_strWhere <> ‘’ THEN

  1. v\_sql := v\_sql || ' WHERE 1=1' || p\_strWhere;

END IF;

IF p_orderColumn IS NOT NULL or p_orderColumn <> ‘’ THEN

  1. v\_sql := v\_sql || ' ORDER BY ' || p\_orderColumn || ' ' || p\_orderStyle;

END IF;

v_sql := v_sql || ‘) A WHERE rownum <= ‘ || v_endRecord || ‘) B WHERE r >= ‘

  1. || v\_startRecord;

DBMS_OUTPUT.put_line(v_sql);

OPEN v_cur FOR v_sql;

END prc_query;

controller:

@Controller

@RequestMapping(“/userloginLog”)

public class UserLoginLogController {

@Autowired

private IUserLoginLogService userLoginLogService;

@RequestMapping(“/getAllUser”)

public String getAllUser(HttpServletRequest request,HttpServletResponse response,Model model){

try {

String sql = “”;

int pageNo =1;

Map param = new HashMap();

String StrpageNo = request.getParameter(“pageNo”);

if(StringUtils.isNotBlank(StrpageNo)){

pageNo = Integer.parseInt(StrpageNo);

}

String loginName = request.getParameter(“loginName”);

String resultCode = request.getParameter(“resultCode”);

String channelid = request.getParameter(“channelid”);

String startTime = request.getParameter(“startTime”);

String endTime = request.getParameter(“endTime”);

if(StringUtils.isNotBlank(loginName)){

sql+=” and login_name=’” + loginName + “‘“;

model.addAttribute(“loginName”, loginName);

}

if(StringUtils.isNotBlank(resultCode)){

sql+=” and RESULT_CODE=’” + resultCode + “‘“;

model.addAttribute(“resultCode”, resultCode);

}

if(StringUtils.isNotBlank(channelid)){

sql+=” and CHANNELID=’” + channelid + “‘“;

model.addAttribute(“channelid”, channelid);

}

if(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime) ){

sql+=” and LOGIN_TIME between to_date(‘“+startTime+”‘, ‘yyyy-mm-dd hh24:mi:ss’) and to_date(‘“+endTime+”‘, ‘yyyy-mm-dd hh24:mi:ss’)”;

model.addAttribute(“startTime”, startTime);

model.addAttribute(“endTime”, endTime);

}

  1. param.put("tableName", "TL\_USER\_LOGIN\_LOG");
  2. param.put("strWhere", sql);
  3. param.put("curPage", pageNo);
  4. param.put("pageSize", 20);
  5. userLoginLogService.getPrAllUser(param);
  6. //result 为在mybatis xml文件时 写的返回结果名
  7. List<TlUserLoginLog> LoginLogList= (List<TlUserLoginLog>) param.get("result");
  8. int curPage = (Integer) param.get("curPage");
  9. int totalRecords = (Integer) param.get("totalRecords");
  10. int totalPages = (Integer) param.get("totalPages");
  11. model.addAttribute("myPage", curPage);
  12. model.addAttribute("pageNo", curPage);
  13. model.addAttribute("totalCount", totalRecords);
  14. model.addAttribute("totalPage", totalPages);
  15. model.addAttribute("userLoginLogList", LoginLogList);

return “prTest”;

} catch (Exception e) {

e.printStackTrace();

model.addAttribute(“InfoMessage”,

“获取信息失败,异常:” + e.getMessage());

return “result”;

}

}

}

IUserLoginLogService:

public List getPrAllUser(Map map);

UserLoginLogServiceImpl:

@Override

public List getPrAllUser(Map map) {

// TODO Auto-generated method stub

return userLoginLogDao.getPrAllUser(map);

}

IUserLoginLogDao:

public List getPrAllUser(Map map);

mybitas:

  1. <select id="getPrAllUser" statementType="CALLABLE" >
  2. \{call prc\_query(
  3. \#\{tableName,mode=IN,jdbcType=VARCHAR\},
  4. \#\{strWhere,mode=IN,jdbcType=VARCHAR\},
  5. \#\{orderColumn,mode=IN,jdbcType=VARCHAR\},
  6. \#\{orderStyle,mode=IN,jdbcType=VARCHAR\},
  7. \#\{curPage,mode=IN,jdbcType=INTEGER\},
  8. \#\{pageSize,mode=IN,jdbcType=INTEGER\},
  9. \#\{totalRecords,mode=OUT,jdbcType=INTEGER\},
  10. \#\{totalPages,mode=OUT,jdbcType=INTEGER\},
  11. \#\{result,mode=OUT,javaType=java.sql.ResultSet,jdbcType=CURSOR,resultMap=com.ai.tyca.dao.IUserLoginLogDao.BaseResultMap\}
  12. )\}

JSP:

<%@ page language=”java” import=”java.util.*“ pageEncoding=”UTF-8”%>

<%@taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core“ %>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+”://“+request.getServerName()+”:”+request.getServerPort()+path+”/“;

%>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>







Basic Form - jQuery EasyUI Demo


























































用户名: 起始时间: 结束时间: 请求结果类型:



平台:



查询 重置






































































































序列 用户名 请求时间 请求结果 渠道 用户类型 账号类型 加密报文 返回报文
${sequence.count} ${loginList.loginName } ${loginList.loginTime } ${loginList.resultDesc } 店员奖励系统 直供系统 终端信息平台 售后 用户信息管理平台 ${loginList.loginUserType } ${loginList.loginAccountType } ${loginList.originalxml } ${loginList.rspxml }


















${totalCount}${pageNo}/${totalPage}

首页







尾页













转载网址:http://6664553.blog.51cto.com/6654553/1909694/

相关阅读:MyIbatis:存储过程(增,删,改,查)

网 址:http://liuzidong.iteye.com/blog/1056671

发表评论

表情:
评论列表 (有 0 条评论,432人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SQL 存储过程

    SQL 分页存储过程 支持:多表连接查询、Group by分组查询等。(多表连接查询时请指定字段,不要用SELECT \) 返回为一结果集,有一个输出参数为记录总数,配