「java取消分页」分页 java

博主:adminadmin 2023-03-21 22:37:07 776

本篇文章给大家谈谈java取消分页,以及分页 java对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JAVA关于数据分页

给你提供两种思路: 1.你要取第二页,也就就是6-10,你可以先用top 10 ,取出前10个,然后desc倒序,再取出top 5 再倒序,这样就取出6-10个;比如:select top 5 from (select top 10 * from table_1 desc) t desc 2.sqlserver 和oracle都有row_number() 这样的列,就是你取出的结果集给你多加一个列,你按row_number()去结果集也行。 比如:with table001 as (select row_number() over (order by Qid) as row_number , * from ( "+sql+") k) select * from table001 where row_number= ? and row_number= ? order by Qid 这个是我之前项目中的sql语句。你参考一下,作用就是 取( "+sql+") 中的sql 中的两个?之间的数据 --------------------------- 你要取页数,可以用第二个思路,pk不一定是连续,可能有些数据给删除;但是查询出来的结果集加上的row_number(),肯定是连续, row_number%5==0;page = row_number/5 row_number%5!=0;page = row_number/5+1 蓝屏

怎样用java实现分页显示,该怎么解决

在项目中,分页是一个项目中必不可少的,它可以防止我们从数据库中进行大量数据查询时速度变慢,提高我们的查询效率

1、定义分页模型:PageModel

package com.common.page;

import java.util.List;

/**

* 封装分页信息

* @author Administrator

*

*/

public class PageModelE {

//结果集

private ListE list;

//查询记录数

private int totalRecords;

//每页多少条数据

private int pageSize;

//第几页

private int pageNo;

/**

* 总页数

* @return

*/

public int getTotalPages() {

return (totalRecords + pageSize - 1) / pageSize;

}

/**

* 取得首页

* @return

*/

public int getTopPageNo() {

return 1;

}

/**

* 上一页

* @return

*/

public int getPreviousPageNo() {

if (pageNo = 1) {

return 1;

}

return pageNo - 1;

}

/**

* 下一页

* @return

*/

public int getNextPageNo() {

if (pageNo = getBottomPageNo()) {

return getBottomPageNo();

}

return pageNo + 1;

}

/**

* 取得尾页

* @return

*/

public int getBottomPageNo() {

return getTotalPages();

}

public ListE getList() {

return list;

}

public void setList(ListE list) {

this.list = list;

}

public int getTotalRecords() {

return totalRecords;

}

public void setTotalRecords(int totalRecords) {

this.totalRecords = totalRecords;

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

public int getPageNo() {

return pageNo;

}

public void setPageNo(int pageNo) {

this.pageNo = pageNo;

}

}

2、分页测试:在MySQL中建立admin表,里面有字段id、name、password

3、简历Admin的实体bean类:

package com.common.page;

public class Admin {

private int id;

private String name;

private String password;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

}

4、测试调用: package com.common.page;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import com.common.db.DbUtil;

public class Client {

public static PageModel findAdmins(int pageNo,int pageSize){

Connection conn=DbUtil.getConnection();

String sql="select * from admin limit ?,?";

PageModel pageModel=null;

PreparedStatement pstm=null;

ResultSet rs=null;

Admin admin=null;

ListAdmin list=new ArrayListAdmin();

try {

pstm=conn.prepareStatement(sql);

pstm.setInt(1, (pageNo-1)*pageSize);

pstm.setInt(2, pageNo*pageSize);

rs=pstm.executeQuery();;

while(rs.next()){

admin=new Admin();

admin.setId(rs.getInt("a_id"));

admin.setName(rs.getString("a_name"));

admin.setPassword(rs.getString("a_pwd"));

list.add(admin);

}

ResultSet rs2=pstm.executeQuery("select count(*) from admin");

int total=0;

if(rs2.next()){

total=rs2.getInt(1);

}

pageModel=new PageModel();

pageModel.setPageNo(pageNo);

pageModel.setPageSize(pageSize);

pageModel.setTotalRecords(total);

pageModel.setList(list);

} catch (SQLException e) {

e.printStackTrace();

}finally{

DbUtil.close(conn);

DbUtil.close(pstm);

DbUtil.close(rs);

}

return pageModel;

}

public static void main(String[] args) {

PageModel pageModel=Client.findAdmins(2,4);

ListAdmin list=pageModel.getList();

for(Admin a:list){

System.out.print("ID:"+a.getId()+",用户名:"+a.getName()+",密码:"+a.getPassword());

System.out.println();

}

System.out.print("当前页:"+pageModel.getPageNo()+" ");

System.out.print("共"+pageModel.getTotalPages()+"页 ");

System.out.print("首页:"+pageModel.getTopPageNo()+" ");

System.out.print("上一页:"+pageModel.getPreviousPageNo()+" ");

System.out.print("下一页:"+pageModel.getNextPageNo()+" ");

System.out.print("尾页:"+pageModel.getBottomPageNo()+" ");

System.out.print("共"+pageModel.getTotalRecords()+"条记录");

System.out.println();

}

}

这样分页效果就实现了,我们要实现分页效果,只要传入相应的参数和相应的数据库执行语句即可实现,希望大家能灵活运用。

java的分页操作中,当完成修改,删除等操作的时候,如何跳回本来页面?

如果用myeclipse这种强大工具,写分页用SSH框架,大概15分钟左右。在action中的删除方法的return处,你retrun你action中的分页方法就可以了。比如你删除方法叫del(), 在这个del()方法的结尾出你return你分页的方法,比如分页方法就叫fenye().你return fenye();就可以了~~

关于JAVA分页代码和删除数据值的问题 高手请进~~~

听你这么说,必定是你的sql语句写的有问题,你既然没有贴出代码,我也没办法给你找错,下面针对你的问题的代码, (假设数据库中有张news新闻表)不知道你用的是什么数据库,这里针对的是mysql数据库:

//先针对数据库的news表写一个java bean

import java.io.Serializable;

import java.sql.Date;

public class news implements Serializable

{

private int news_id;

private String news_title;

private String news_content;

private int news_type_id;

private String pubtime;

public news(int news_id, String news_title, String news_content, int news_type_id, String pubtime) {

super();

this.news_id = news_id;

this.news_title = news_title;

this.news_content = news_content;

this.news_type_id = news_type_id;

this.pubtime = pubtime;

}

public news(){}

public String getNews_content() {

return news_content;

}

public void setNews_content(String news_content) {

this.news_content = news_content;

}

public int getNews_id() {

return news_id;

}

public void setNews_id(int news_id) {

this.news_id = news_id;

}

public String getNews_title() {

return news_title;

}

public void setNews_title(String news_title) {

this.news_title = news_title;

}

public int getNews_type_id() {

return news_type_id;

}

public void setNews_type_id(int news_type_id) {

this.news_type_id = news_type_id;

}

public String getPubtime() {

return pubtime;

}

public void setPubtime(String pubtime) {

this.pubtime = pubtime;

}

}

//再写一个操作数据库的dbo

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;

public class newsDBO {

Connection conn = null;

PreparedStatement ps = null;

ResultSet rs = null;

public ArrayList getNews(int page_num, int page_count )//分页代码

{

news s=null;

ArrayList list = new ArrayList();

try{

//加载数据库驱动

Class.forName("com.mysql.jdbc.Driver");

//获得数据库连接。注:test是数据库名,news表在这个数据库中

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");

String sql="select * from news limit " +( page_num-1)*page_count +"," + page_count ;

System.out.println(sql);//这是调试用的,可以检验你的sql语句有没有错,错在哪里

ps = conn.prepareStatement(sql);

rs = ps.executeQuery();

while(rs.next())

{

s=new news();

s.setNews_content(rs.getString("news_content"));

s.setNews_id(rs.getInt("news_id"));

s.setNews_title(rs.getString("news_title"));

s.setNews_type_id(rs.getInt("news_type_id"));

s.setPubtime(rs.getString("pubtime"));

list.add(s);

}

}

catch(Exception e)

{

e.printStackTrace();

}

return list;

}

public boolean delNewsById(int news_id){

boolean flag = true;

try{

conn = DBTools.getConnection();

String sql = "delete from news where news_id = " + news_id;

ps = conn.prepareStatement(sql);

System.out.println(sql);//调试代码

//千万别忘了执行!!!不写下面这一句,所有的代码都白写了,根本就没往数据库送!!

ps.execute();

catch (Exception e) {

flag = false;

e.printStackTrace();

}

return flag;

}

}

//下面是分页的jsp页面

%@ page language="java" import="java.util.*" pageEncoding="gbk"%

!-- 把包导入--

jsp:directive.page import="dbo.newsDBO" /

jsp:directive.page import="Beans.news" /

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

html

head

titleMy JSP 'news.jsp' starting page/title

/head

body

table border="1"

tr

td新闻序号/td

td新闻标题/td

td新闻内容/td

td新闻类型/td

td新闻时间/td

td基本操作/td

/tr

%

int page_num = 1;

int page_count = 5;

String num = request.getParameter("page_num");

if(num != null){

page_num = Integer.parseInt(num);

}

newsDBO nd = new newsDBO();

ArrayList al=nd.getNews(page_num,page_count);

news n=null;

for(int i=0; i al.size(); i++){

n=(news)al.get(i);

%

tr

td%=n.getNews_id()%/td

td%=n.getNews_title()%/td

td%=n.getNews_content()%/td

td%=n.getNews_type_id()%/td

td%=n.getPubtime()%/td

tda href="delete_news.jsp?id=%=n.getNews_id()%"删除/a/td

/tr

/table

/body

/html

//删除页面delete.jsp

%@ page language="java" pageEncoding="gbk"%

jsp:directive.page import="dbo.newsDBO"/

body

%

String sid = request.getParameter("id");

System.out.println(sid);

int id = Integer.parseInt(sid);

newsDBO dbo = new newsDBO();

dbo.delNewsById(id);

%

/body

/html

大概就是这样了,说明下,上面的代码是我从以前做的新闻网站中经修改而来的,但是以前因为做的是一个网站,所以全部代码比较复杂,但是也没必要给你,因为根你的问题没多大关系,为了代码简洁和便于你理解,jsp页面我专门给你写了,就是上面的,希望能解决你的问题,也就算我没白忙,呵呵

对了,如果你的数据库不是mysql,那你可以到网上找一下相应数据库的分页语句,比如oracle,sqlsever等,其实原理是一样的,不过sql语句稍有不同而已.所以我这里不再多说了

java分页

分页想清楚了就没什么难的了。一般有两种(我就知道两种):

1.数据库分页:

/**

* @param pageItems:一页显示条数 currentPage:当前第几页

* @autor godelegant

*/

public List findAll(int pageItems,int currentPage){

StringBuffer sqlStr = new StringBuffer("select * from Product limit ?,?");

...

...

int startIndex = (currentPage-1)*pageItems;);//(currentPage-1)*pageItems能过当前页和页面记录数得到应该从哪条开始取

int endIndex = startIndex+pageItems;

db.getPstmt().setInt(1,startIndex);

db.getPstmt().setInt(2,endIndex);

ResultSet rs = db.getPstmt().executQuery();//假设你已经得到了数据库连接

//以上为MYSQL的JDBC分页,下面是ORALCE的,差别只在于SQL,所以你换一下SQL就OK:

StringBuffer sqlStr = new StringBuffer("select *,rownum rn from (select * from Product) where rn =? and rownum =?");

}

求总页数的方法很简单,查出所有记录数,除一页显示数。就可以得到

以上是JDBC的,如果使用hibernate等,数据库分页将会变得很简单,只需要设置两个参数,就是从哪取和取多少。

2.代码分页

思路是将数据库中的所有记录都取出来,然后再分页。

/**

* @para items:数据库中的所有记录,你可以使用另一个方法得到,如何查询得到我就不用说了吧

* @autor godelegant

*/

public List findAll(List items,int pageItems,int currentPage){

int startIndex = (currentPage-1)*pageItems;//从哪里开始取

int offset = items.size()-startIndex;//还有多少没有取过

int pageCount = offsetpageItems?pageItems:offset;//如果没有取过的大于需要显示的数,则实现显示数pageCount=pageItems,反之然;

ListProduct pageList = new ArrayList();

for(int i=startIndex,istartIndex+pageCount,i++){

pageList.add(items.get(i));

}

return pageList;

}

写了40分钟,希望对你有用

java取消分页的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于分页 java、java取消分页的信息别忘了在本站进行查找喔。