怎么把查询参数传给分页的类

分页

//和sonymusic得两个类放在一个包里
//PageQuery.java
package pagequery;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

import db.DBConfig;
public class PageQuery {

//private String sql;
//private Connection conn;
//返回当前页号
private int curPage;

//返回分页大小
private int pageSize;

//返回总页数
private int pageCount;

//返回当前页的记录条数
private int pageRowsCount;

//返回总记录行数
private int rowsCountget;

//返回文件路径
private String FilePath;

//返回传入参数
private Map map=new HashMap();

public PageQuery()
{
}
/*
public void setCurPage(int curPage) {
this.curPage = curPage;
}
public int getCurPage() {
return curPage;
}

public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageSize() {
return pageSize;
}
*/

public int getPageRowsCount() {
return pageRowsCount;
}
public void SetQuery(String key,String value)
{
map.put(key,value);
}

public void SetMap(HttpServletRequest req){
Enumeration parameterNames=req.getParameterNames();
while (parameterNames.hasMoreElements())
{
String name=(String) parameterNames.nextElement();
String values[]=req.getParameterValues(name);
//for(int i=0;i<values.length;i++){
String value=values[0];
if (name.equals("curpage")||name.equals("pagesize")||name.equals("Submit")||name.equals("submit")||value==null||value.length()==0)
{}
else{
map.put(name,value);
}
}
}
public String getSqlQuery(){
if (map.isEmpty())
{
return "";
}
else
{
StringBuffer strb = new StringBuffer(" where 1=1 ");
Iterator imap=map.entrySet().iterator();
while(imap.hasNext())
{strb.append( "and " );
Map.Entry entry=(Map.Entry)imap.next();
String key=(String)entry.getKey();
try {
int value=Integer.parseInt((String)entry.getValue());
strb.append( key );
strb.append( " =" );
strb.append( value );
strb.append( " " );
}
catch (NumberFormatException e){
e.printStackTrace();
String value=(String)entry.getValue();
strb.append( key );
strb.append( " like'%" );
strb.append( value );
strb.append( "%' " );
}
}
return strb.toString();
}
}

public ResultSet myQuery(Connection conn,String sql, HttpServletRequest req) throws Exception {
return myQuery( conn, sql, req,15);
}
public ResultSet myQuery(Connection conn,String sql, HttpServletRequest req ,int ps) throws Exception {
//this.conn=conn;
//this.sql=query;
PreparedStatement pstmt=null;
try {
pstmt = conn.prepareStatement(sql);
ResultSet rset = pstmt.executeQuery();

Pageable rs=null;
rs=new PageableResultSet2(rset);//构造一个Pageable

this.rowsCountget=rs.getRowsCount();

try{
curPage=Integer.parseInt(req.getParameter("curpage"));}
catch (Exception e) { curPage=1;
}

try{
pageSize=Integer.parseInt(req.getParameter("pagesize"));
}
catch (Exception e) {
// e.printStackTrace();
pageSize=ps;
}

pageSize=pageSize>rowsCountget?rowsCountget:pageSize;
rs.setPageSize(pageSize);//每页N个记录
rs.gotoPage(curPage);//跳转到第N页

this.pageCount=rs.getPageCount();

this.pageRowsCount=rs.getPageRowsCount();

this.FilePath=req.getRequestURI();

/*
for(int i=0; i<pageRowsCount; i++){//循环处理

content.append(rs.getString(1));
content.append(" ");
content.append(rs.getString(2));
content.append("<br>");
rs.next();
}
*/
return rs;

}
catch (Exception e)
{
return null;
}
}
public String javascript(){
StringBuffer javascript = new StringBuffer("");
javascript.append(" <script language=JavaScript>\n");
javascript.append("function viewPage(ipage){\n");
javascript.append("document.asdffsdsdffdgfgfgf.curpage.value=ipage;\n");
javascript.append("document.asdffsdsdffdgfgfgf.submit();\n");
javascript.append(" } </script>\n");
return javascript.toString();
}
public String PageLegend(){
StringBuffer strb = new StringBuffer("");

strb.append("<form name=asdffsdsdffdgfgfgf method=post action="+FilePath+">");
strb.append( "本页");
strb.append(pageRowsCount);
strb.append( "条记录 共" + rowsCountget + "条记录 ");
if(pageCount==0||curPage==1){

strb.append( " 首页 ");
strb.append( " 前页 ");}

else {
strb.append( "\n<A href=javascript:viewPage(1)>首页</A> ");
strb.append( " \n<A href=javascript:viewPage(" + (curPage-1)+")>前页</A> ");}
if(curPage==1||pageCount==curPage){
strb.append( " 后页 ");
strb.append( " 尾页 ");}

else
{
strb.append( " \n<A href=javascript:viewPage(" + (curPage+1)+")>后页</A> ");
strb.append( " \n<A href=javascript:viewPage(" + (pageCount)+")>尾页</A>");
}

strb.append( " 页次:" + curPage + "/" + pageCount + "页 ");
strb.append( "\n<input name=pagesize type=text size=2 value="+pageSize+">" + "条/页 " );

strb.append("\n<select name=curpage>\n");
for (int i=1;i<=pageCount;i++){
//if (i==curPage)
// strb.append("<option value="+i+" selected>"+i+"</option>\n");
// else
strb.append("<option value="+i+">"+i+"</option>\n");
}
strb.append("</select>");
if (!map.isEmpty()){
Iterator imap=map.entrySet().iterator();
while(imap.hasNext())
{
Map.Entry entry=(Map.Entry)imap.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
strb.append("<input type=\"hidden\" name=\"");
strb.append(key);
strb.append("\" value=\"");
strb.append(value);
strb.append("\">\n");
}}
strb.append("页 <input type=button name=Submit value=Go language=javascript onclick=viewPage(document.asdffsdsdffdgfgfgf.curpage.value)></form>");

return strb.toString();
}

}

//GetParameter.java
package pagequery;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class GetParameter {
private Map map=new HashMap();
public GetParameter(){};
public String getMap(HttpServletRequest req){
Enumeration parameterNames=req.getParameterNames();
while (parameterNames.hasMoreElements())
{
String name=(String) parameterNames.nextElement();
String values[]=req.getParameterValues(name);
//for(int i=0;i<values.length;i++){
String value=values[0];
if (name.equals("curpage")||name.equals("pagesize")||name.equals("Submit")||name.equals("submit")||value==null||value.length()==0)
{}
else{
map.put(name,value);
}
// }
}
if (map.isEmpty())
{
return "";
}
else
{
StringBuffer strb = new StringBuffer(" where 1=1 ");
Iterator imap=map.entrySet().iterator();
while(imap.hasNext())
{strb.append( "and " );
Map.Entry entry=(Map.Entry)imap.next();
String key=(String)entry.getKey();
try {
int value=Integer.parseInt((String)entry.getValue());
strb.append( key );
strb.append( " =" );
strb.append( value );
strb.append( " " );
}
catch (NumberFormatException e){
e.printStackTrace();
String value=(String)entry.getValue();
strb.append( key );
strb.append( " like'%" );
strb.append( value );
strb.append( "%' " );
}
}
return strb.toString();
}
}
}

//news.jsp
<%@include file="loginforce.jsp"%>
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.sql.*,parameter.*" %>
<jsp:useBean id="PageQuery" class="pagequery.PageQuery" scope="page"/>
<%--jsp:useBean id="GetParameter" class="pagequery.GetParameter" scope="page"/--%>
<jsp:useBean id="dbconfig" class="db.DBConfig" scope="page"/>
<html>

<head>
<title>新闻管理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="/css/gccss.css" type="text/css">
<script language="Javascript">
function CheckAll(curElement)
{
var sTable = curElement.parentElement.parentElement.parentElement.parentElement;
if(curElement.checked){
for(var i=1;i<sTable.rows.length;i++){
sTable.rows(i).children[0].children[0].checked=true;
}
}else{
for(var i=1;i<sTable.rows.length;i++){
sTable.rows(i).children[0].children[0].checked=false;
}
}
}

function newBigWindow(url, windowName)
{
window.open(url, windowName, "width=800,height=600,left=100,top=0,scrollbars=yes,resizeable=yes");
}

function isChecked(){
for (var i=0;i<document.forms[0].elements.length;i++){
var e = document.forms[0].elements[i];
if (e.name == 'items')
if(e.checked) return true;
}
return false;
}

function doDel(){
if(isChecked()){
if(confirm("确定删除?")){
document.forms[0].submit();
return true;
}
return false;
}
return false;
}
</script>
</head>
<body>
<br>
<center><span class=head>新闻管理</span></center>
<br>
<FORM NAME=main_form METHOD=POST ACTION="newsdelete.jsp">
<table width="95%" border="0" cellspacing="2" cellpadding="2" align="center" class="table_a">
<tr class="title">
<td width="5%" align="center"><input type="checkbox" name="checkbox" value="checkbox" onclick="CheckAll(this)"></td>
<td width="5%" align="center">修 改</td>
<td width="10%">类型</td>
<td width="50%">标题</td>
<td width="15%">发布日期</td>
<td width="7%">是否推荐</td>
<td width="8%">点击数</td>

<%
// DBConfig dbconfig;
Connection conn;
//dbconfig=new DBConfig();
conn=dbconfig.GetConnect();
ParameterParser parser = new ParameterParser(request);

String _types=parser.getStringParameter("types","");
if (_types.length()==0)
{
_types="1=1";
}
else
{
_types=" types ="+_types ;
}

String _hot=parser.getStringParameter("hot","");
if (_hot.length()==0)
{
_hot="1=1";
}
else
{
_hot=" hot ="+_hot ;
}

String _title=parser.getStringParameter("title","");
if (_title.length()==0)
{
_title="1=1";
}
else
{
_title=" title like '%"+_title+"%'" ;
}

PageQuery.SetMap(request);
//String ds=GetParameter.getMap(request);
//String ds=PageQuery.getSqlQuery();
String sql="select id,types,title,news_date,hot,count from news where "+_types+" and "+_title+" and " +_hot+ " order by id desc";
out.println(sql);
//out.println("<br>");
//StringBuffer content = new StringBuffer("");
ResultSet rs;
rs=PageQuery.myQuery(conn,sql,request,4);

//PageQuery.SetQuery("types",parser.getStringParameter("types", ""));
int pageRowsCount=PageQuery.getPageRowsCount();
int t=0;String tt="t2";
for(int i=0; i<pageRowsCount; i++){//循环处理
t++;
int id=rs.getInt(1);
String types=rs.getString(2);
String title=rs.getString(3);
String news_date=rs.getString(4);
int hot=rs.getInt(5);
int count=rs.getInt(6);
String hot_to_str;
switch (hot){
case 0:hot_to_str="否"; break;
case 1:hot_to_str="是"; break;
default:hot_to_str="否";}
tt=t%2==0?"t2":"t1";
//content.append(rs.getString(1));
//content.append(" ");
//content.append(rs.getString(2));
//content.append("<br>");
%>
<tr class="<%=tt%>">
<td align="center"><input type="checkbox" name="items" value="<%=id%>"></td>
<td align="center"><a href="newsmod.jsp?id=<%=id%>">修改</a></td>
<td><%=types%></td>
<td><a href="javascript:newBigWindow('newsshow.jsp?id=<%=id%>','_blank')" title="查看详细"><%=title%></a></td>
<td><%=news_date%></td>
<td><%=hot_to_str%></td>
<td><%=count%></td>

</tr>

<%
rs.next();
}
conn.close();
%>
</table></FORM>
<hr noshade size="1">
<table width="95%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> <div align="right"><%out.println(PageQuery.PageLegend());
out.println(PageQuery.javascript());%>
</div></td>
</tr>
</table>
<%
//out.println(content.toString());
//ResultSetMetaData resultsMeta=rs.getMetaData();
//int columns=resultsMeta.getColumnCount();
// out.println("<br>");
//out.println(columns);
%>
<br>
<div align="center">

<INPUT TYPE="button" name="createnew" value="增 加" onclick="location.href='newsadd.jsp'">
<INPUT TYPE="button" name="del" value="删 除" onclick="return doDel();">
</div>

<br>
<br>
<div>
<FORM NAME="main_form" METHOD="post" ACTION="news.jsp">
<table width="60%" border="0" cellspacing="2" cellpadding="2" class="table_a" align="center">
<tr class="title">
<td colspan="4"> 请选择查询条件</td>
</tr>
<tr><td with="20" class="t1"><div align="center">类 型</div></td>
<td class="t2">
<select name="types">
<option value="">忽略</option>

<option value="1">1</option>

</select>
</td>
</tr>
<tr>
<td width="20%" class="t1">
<div align="center">是否推荐</div>
</td>
<td class="t2">
<select name="hot">
<option value="">忽略</option>
<option value="1">否</option>
<option value="2">是</option>
</td>
</tr>
</tr>
<tr>
<td width="20%" class="t1">
<div align="center">标 题</div>
</td>
<td class="t2">
<input type="text" name="title" size=37 value="">
</td>
</tr>

</table><br>
<div align="center"><input type="submit" name="query" value="查询"></div>
</FORM>
</div>
</body>
</html>

时间: 2024-12-03 23:40:19

怎么把查询参数传给分页的类的相关文章

动态指定任意类型的ObjectDataSource对象的查询参数_实用技巧

ObjectDataSource在使用时需要事先指定查询方法SelectMethod(其实还有InsertMethod,UpdateMethod和DeleteMethod),TypeName和DataObjectTypeName,然后我们只需要编写好SelectMethod方法的实现,如果需要分页,那么还要指定MaximumRwosParameterName属性和StartRowIndexParameterName,然后在SelectMethod方法中加上相应的参数,当然,SelectCount

asp.net高效的分页方法超大数据量大并且带查询参数

asp教程.net高效的分页方法超大数据量大并且带查询参数 create   Proc [dbo].[GetRS] @QueryStr nvarchar(300),--表名.视图名.查询语句 @PageSize int=10,--每页的大小(行数) @PageCurrent int=1,--要显示的页 @FdShow nvarchar (100)='',--要显示的字段列表,如果查询结果有标识字段,需要指定此值,且不包含标识字段 @FdOrder nvarchar (100)='',--排序字段

mybatis-SpringMVC+Mybatis调用后台报空指针异常,代码没查出错误,页面也有参数传进来,求解答

问题描述 SpringMVC+Mybatis调用后台报空指针异常,代码没查出错误,页面也有参数传进来,求解答 [DEBUG]2015-08-12 11:07:30,234 org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver Resolving exception from handler [public java.util.Map cn.sg.controller.Back

dropdownlist内容作为SQL的查询参数,怎么实现默认为“不限”,从而SQL查询时,此参数限定条件为“无”?

问题描述 dropdownlist内容作为SQL的查询参数,怎么实现默认为"不限",从而SQL查询时,此参数限定条件为"无"?多谢指教!! 解决方案 解决方案二:你把dropdownlist里添加个不限这项SelectValue设为空!查询如果时候传这个参数自动传为空解决方案三:不懂.....设置成1=1??select*fromtablewhere1=1不就不限了解决方案四:添加个item,value值为空.解决方案五:DDLCarId.Items.Insert(

cakephp2.X多表联合查询join及使用分页查询的方法

本文实例讲述了cakephp2.X多表联合查询join及使用分页查询的方法.分享给大家供大家参考,具体如下: 格式化参数: public function getconditions($data){ $this->loadModel("Cm.LoginHistory"); $conditions = array(); foreach ($data as $key=>$val){ if($key=='start_date'){ $conditions['LoginHistor

Solr学习总结(四)Solr查询参数

今天还是不会涉及到.Net和数据库操作,主要还是总结Solr 的查询参数,还是那句话,只有先明白了solr的基础内容和查询语法,后续学习solr 的C#和数据库操作,都是水到渠成的事.这里先列出solr查询所需要的参数 wiki 地址:http://wiki.apache.org/solr/FrontPage, 里面有各个参数详细的介绍.   一.基本查询 q  查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:*, fl  指定返回哪些字段,用逗号或空格分隔,注意:字段区分大小写

mybatis查询是传参报错的处理

mybatis查询是传参报错的处理 自己用的数据库是mysql数据库,用mybatis管理,java后台是 spring框架, 控制台出现: 1 There is no getter for property named 'xxxx' in 'class java.lang.Integer 错误,查了一下,以为是xml中的sql的参数类型有错误,后来改了,不是,网上说改: <select id="selectAllUserByName" resultType="User

利用JQuery方便实现基于Ajax的数据查询、排序和分页功能

ajax|分页|排序|数据        之前很少会用javascript去实现页功能主要怕麻烦,但了解JQuery后这种想法发生了变化:有了这样的脚本组件就可以在编写脚本时方便和HTML隔离出来,这样编写高重用性的脚本就更方便.下面就是介绍在学习JQuery过程中编写的基于Ajax的数据查询.排序和分页功能的复用脚本,只要遵循脚本的某些规则描述HTML把脚本文件引入就可以方便实现以上描述的功能.        先看下实现功能的脚代码: /**应用脚本规则:           引用脚本: JQ

java方法参数传值传引用的一点看法

  java 跟C++不同,java的方法参数都是传值,没有传引用.很多人都以为是传引用,而且这种错误的观点很普遍,今天在这里具体分析一下.方法参数有基本类型,如int等,另外一种类型是OBJECT,对象.详细说一下方法参数是对象的,跟C++不同的是,JAVA方法参数传对象,传的是对这个对象引用的一份拷贝,即地址值,跟原来的引用都是指向同一个对象.所以说,JAVA方法参数传的都是值. 程序一 传的对象值是改变的.public class Test{public Test(){int [] cou