/**
* 生成取中间部分数据的sql语句, Oracle专用
* @param sql String 带排序的原始sql语句
* @param lowLimit int 起始行
* @param highLimit int 截止行
* @return String
* @author Zhang zhongguang
*/
public static String getOraLimitString(String sql, int lowLimit,
int highLimit)
{
StringBuffer pagingSelect = new StringBuffer(sql.length() + 64);
pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ");
pagingSelect.append(sql);
pagingSelect.append(" ) row_ where rownum <= ");
pagingSelect.append(highLimit);
pagingSelect.append(" ) where rownum_ >= ");
pagingSelect.append(lowLimit);
return pagingSelect.toString();
}
//select * from (select row_.*, rownum rownum_ from ( select * from 表名) row_ where rownum<=10) where rownum_>=1
/**
* 生成取中间部分数据的sql语句, MySQL专用
* @param sql String 带排序的原始sql语句
* @param lowLimit int 起始行
* @param highLimit int 截止行
* @return String
* @author Zhang zhongguang
*/
public static String getMySQLLimitString(String sql, int lowLimit,
int highLimit)
{
StringBuffer pagingSelect = new StringBuffer(sql.length() + 16);
pagingSelect.append(sql);
pagingSelect.append(" limit ");
pagingSelect.append(lowLimit);
pagingSelect.append(", ");
pagingSelect.append(highLimit);
return pagingSelect.toString();
}
public static void main(String[] args)
{
String miscId = "AAAs'%";
miscId=miscId.replaceAll("';", "';';");
miscId=miscId.replaceAll("_","[_]");
miscId=miscId.replaceAll("%","[%]");
miscId=miscId.replaceAll("'","''");
System.out.println("#####"+miscId);
}
public class Page
{
/**
* @param args
* @throws IOException
*/
public static void pager(HttpServletRequest request, JspWriter out)
{
String reqParam = request.getQueryString() == null ? "" : request.getQueryString();
String url = request.getRequestURL() + "?";
int pagesize = -1;
int pageindex = -1;
int totalcount = (Integer) request.getAttribute("totalcount");
if (reqParam.indexOf("pagesize") == -1)
{
pagesize = 10;
}
else
{
try
{
pagesize = Integer.parseInt(request.getParameter("pagesize"));
}
catch (NumberFormatException e)
{
pagesize = 10;
}
}
if (reqParam.indexOf("pageindex") == -1)
{
pageindex = 1;
}
else
{
try
{
pageindex = Integer.parseInt(request.getParameter("pageindex"));
}
catch (NumberFormatException e)
{
pageindex = 1;
}
}
String result = "";
if (totalcount > pagesize)
{
if (pageindex == 1)
{
result = "1 ";
for (int page = 2; (page <= (totalcount+pagesize-1)/pagesize) && (page <= 10); page++)
{
result = result + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=" + page + "\">[" + page + "]</a> ";
}
result = result + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=2" + "\">下一页</a> " + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=" + (totalcount+pagesize-1)/pagesize + "\">尾页</a> ";
}
else if (pageindex == (totalcount+pagesize-1)/pagesize)
{
result = result + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=1\">首页</a> " + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=" + (pageindex - 1) + "\">上一页</a> ";
for (int page = Math.max((totalcount+pagesize-1)/pagesize - 10, 1); page <= ((totalcount+pagesize-1)/pagesize - 1); page++)
{
result = result + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=" + page + "\">[" + page + "]</a> ";
}
result = result + (totalcount+pagesize-1)/pagesize;
}
else
{
result = result + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=1\">首页</a> " + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=" + (pageindex - 1) + "\">上一页</a> ";
int i = 0;
for (int page = (int) Math.max(pageindex - 5, 1); page <= (pageindex - 1); page++)
{
result = result + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=" + page + "\">[" + page + "]</a> ";
i = i + 1;
}
result = result + pageindex + " ";
for (int page = pageindex + 1; (page <= (totalcount+pagesize-1)/pagesize) && (page <= (pageindex + 9 - i)); page++)
{
result = result + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=" + page + "\">[" + page + "]</a> ";
}
result = result + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=" + (pageindex + 1) + "\">下一页</a> " + "<a href=\"" + url + "pagesize=" + pagesize + "&pageindex=" + (totalcount+pagesize-1)/pagesize + "\">尾页</a> ";
}
result = result + " 第 " + pageindex + "/ " + (totalcount+pagesize-1)/pagesize + "页 ";
}
try
{
out.print(result + "一共 " + totalcount + " 条数据 ");
}
catch (IOException e)
{
}
}
public static void main(String[] args)
{
System.out.println((14+10-1)/10);
}
}
分享到:
相关推荐
在SQL(Structured Query Language)中,日期类型和常用的函数、空值处理、分页语句以及多表关联是数据库操作的基础且重要的知识点。下面将详细阐述这些内容。 1. **日期类型** SQL中的日期时间类型包括DATE、TIME...
3. 数据库分页:利用SQL语句实现数据的分页查询。 4. HTML/CSS:构建前端界面,模拟百度和谷歌的分页样式。 5. 服务器端逻辑:处理用户请求,计算分页信息,生成分页链接。 这个项目不仅涉及到技术实施,还涵盖了...
在MySQL中,有些特殊的SQL语句可以帮助我们更高效、更精确地处理数据。以下是一些MySQL SQL语句的特殊处理技巧,这些技巧在日常数据库操作中非常实用。 1. **条件更新**: - `IF` 函数可以用于条件更新,如示例中...
此SQL语句创建一个包含两列的新表:`column1`为整数类型且不允许为空,`column2`为可变长度字符串类型,最大长度为30个字符。 #### 5. 添加主键约束 ```sql altertable<> addprimarykey("column1"); ``` 该语句向...
这个过程涉及到多个知识点,包括数据库连接、查询语句、数据适配器、数据表以及分页逻辑。 首先,我们需要建立数据库连接。在C#中,我们通常使用`System.Data.SqlClient`命名空间下的`SqlConnection`类来创建与SQL ...
///StringReplaceSpace()替换文本中的空格和换行 ///StringColor()改变字的颜色 ///StringNull()当对象是空的时候 转为空字符串 ///StringConvert()汉字转拼音 ///StringNumber()数字转换中文 ///...
这种工具通常具有模板化和参数化的特性,允许开发者定义查询模板,然后将变量替换为实际值,生成最终的SQL语句。这不仅减少了手动拼接字符串的错误,还提高了代码的可读性和可维护性。 描述中提到的“针对不确定的...
请将`connectionString`替换为你的数据库连接字符串,`YourTableName`替换为实际的表名,`currentPage`替换为当前页码。 四、优化技巧 1. **索引优化**:对于大表,确保排序字段有合适的索引,以提高查询效率。 2....
存储过程内部通常会包含如`SELECT * FROM YourTable OFFSET @StartRow ROWS FETCH NEXT @PageSize ROWS ONLY`这样的SQL语句,利用SQL Server的OFFSET/FETCH语法实现分页。 在处理大数据时,优化分页性能也至关重要...
这里,`your_connection_string`应该替换为实际的数据库连接字符串,`YourTableName`替换为你的表名。 为了实现分页功能,我们需要处理GridView的`PageIndexChanging`事件。此事件会在用户点击分页按钮时触发。以下...
2. **更新DOM**:在`success`回调函数中,接收到服务器返回的新数据后,使用jQuery选择器找到需要更新的DOM元素,将新数据插入或替换进去。这通常涉及HTML字符串的拼接和元素的动态操作。 3. **事件绑定**:确保...
这可以通过解析请求URL中的查询字符串或者从请求的POST数据中获取。例如,URL可能是`/list?page=3&itemsPerPage=10`,我们可以使用`request.getParameter("page")`和`request.getParameter("itemsPerPage")`来获取...
需要注意的是,此代码示例使用的是Jet.OleDb数据库引擎(Access数据库),在实际生产环境中可能需要替换为适应其他数据库系统的连接字符串和适配器。此外,为了确保分页功能的健壮性,还需要考虑如何处理用户请求...
这个过程涉及到对字符串的处理,例如替换`desc`或`asc`,以及使用`charindex()`函数来定位和分割字符串。 对于非数值类型的排序列,如字符型,`p_page`存储过程会检查列的数据类型,以便正确处理排序。如果列类型为...
1. **生成分页链接**:构建包含所有分页链接的`pagelist`字符串。 2. **生成多个静态页面**:根据`InnerPageNum`的值循环生成每个分页对应的静态页面。 - 使用`arrcontent`数组来获取每一页的具体内容。 - 替换...
在ADO.NET中执行这个查询的方式与上面的例子类似,只需替换SQL查询字符串即可。 总结来说,ADO.NET通用分页代码主要涉及如何构建合适的SQL查询以及在C#代码中执行和处理结果。通过合理地利用`Skip`和`Take`(或者`...
分页的关键在于限制返回的记录数,这通常通过`OFFSET`和`FETCH NEXT`语句实现。例如,每页显示20条记录,当前页为第3页: ```csharp int pageSize = 20; int currentPage = 3; int offset = (currentPage - 1) ...
///StringReplaceSpace()替换文本中的空格和换行 ///StringColor()改变字的颜色 ///StringNull()当对象是空的时候 转为空字符串 ///StringConvert()汉字转拼音 ///StringNumber()数字转换中文 ///String...
`str_replace()`函数用于替换字符串中的特定字符,这里将换行符`\n`替换为` `,空格替换为` `。 5. **列表显示与分页** 为了显示留言列表,首先获取每页显示的数量`$pagesize`,默认为4。使用`mysql_query...
1. **初始化数据库连接**:使用`SqlConnection`对象建立与数据库的连接,这里的连接字符串应替换为实际的数据库连接信息。 2. **构建数据适配器**:通过`SqlDataAdapter`对象执行SQL查询,并填充到`DataSet`中。...