一段分页代码PaginationSupport.java

 
package  com.javaeye.common.hibernate;

import  java.util.LinkedList;
import  java.util.List;

public   class  PaginationSupport  {

    
// ---------------------------------------------------------
    
// static variables
    
// ---------------------------------------------------------

    
// 默认每页显示条数
    public static final int DEFAULT_MAX_PAGE_ITEMS = 10;

    
// 默认开始记录条数
    public static final int DEFAULT_OFFSET = 0;

    
// 默认显示页码最大数
    public static final int DEFAULT_MAX_INDEX_PAGES = 10;

    
// index 为索引页位置, 可以选择 "center", "forward", "half-full"
    public static final String DEFALUT_INDEX = "center";

    
// ---------------------------------------------------------
    
// memeber variables
    
// ---------------------------------------------------------

    
// 开始记录条数
    private int offset = 0;

    
// 每页显示条数
    private int maxPageItems = DEFAULT_MAX_PAGE_ITEMS;

    
// 显示页码最大数
    private int maxIndexPages = DEFAULT_MAX_INDEX_PAGES;

    
// 总记录数
    private int totalCount;

    
// 返回结果集
    private List items = new LinkedList();

    
// index 为索引页位置, 可以选择 "center", "forward", "half-full"
    private String index = DEFALUT_INDEX;

    
private int[] indexes = new int[0];

    
public PaginationSupport() {
        setMaxIndexPages(DEFAULT_MAX_INDEX_PAGES);
        setTotalCount(
0);
        setOffset(
0);
        setItems(
new LinkedList());
    }


    
public PaginationSupport(List items, int totalCount) {
        setMaxPageItems(DEFAULT_MAX_PAGE_ITEMS);
        setTotalCount(totalCount);
        setItems(items);
        setOffset(
0);
    }


    
public PaginationSupport(List items, int totalCount, int offset) {
        setMaxPageItems(DEFAULT_MAX_PAGE_ITEMS);
        setTotalCount(totalCount);
        setItems(items);
        setOffset(offset);
    }


    
public PaginationSupport(List items, int totalCount, int offset,
            
int maxPageItems) {
        setMaxPageItems(maxPageItems);
        setTotalCount(totalCount);
        setItems(items);
        setOffset(offset);
    }


    
public PaginationSupport(List items, int totalCount, int offset,
            
int maxPageItems, int maxIndexPages, String index) {
        setMaxPageItems(maxPageItems);
        setTotalCount(totalCount);
        setItems(items);
        setOffset(offset);
        setMaxIndexPages(maxIndexPages);
        setIndex(index);
    }


    
public List getItems() {
        
return items;
    }


    
public void setItems(List items) {
        
if (items == null{
            
this.items = new LinkedList();
        }
 else {
            
this.items = items;
        }

    }


    
public int getMaxPageItems() {
        
return maxPageItems;
    }


    
public void setMaxPageItems(int maxPageItems) {
        
this.maxPageItems = maxPageItems;
    }


    
public int getTotalCount() {
        
return totalCount;
    }


    
public void setTotalCount(int totalCount) {
        
if (totalCount > 0{
            
this.totalCount = totalCount;
            
int count = totalCount / maxPageItems;
            
if (totalCount % maxPageItems > 0{
                count
++;
            }

            indexes 
= new int[count];
            
for (int i = 0; i < count; i++{
                indexes[i] 
= maxPageItems * i;
            }

        }
 else {
            
this.totalCount = 0;
        }

    }


    
public int[] getIndexes() {
        
return indexes;
    }


    
public void setIndexes(int[] indexes) {
        
this.indexes = indexes;
    }


    
public int getOffset() {
        
return offset;
    }


    
public void setOffset(int startIndex) {
        
if (totalCount <= 0)
            
this.offset = 0;
        
else if (startIndex >= totalCount)
            
this.offset = indexes[indexes.length - 1];
        
else if (startIndex < 0)
            
this.offset = 0;
        
else {
            
this.offset = indexes[startIndex / maxPageItems];
        }

    }


    
public int getNextIndex() {
        
int nextIndex = getOffset() + maxPageItems;
        
return nextIndex >= totalCount ? getOffset() : nextIndex;
    }


    
public int getPreviousIndex() {
        
int previousIndex = getOffset() - maxPageItems;
        
return previousIndex < 0 ? DEFAULT_OFFSET : previousIndex;
    }


    
/**
     * 
@return Returns the dEFAULT_MAX_INDEX_PAGES.
     
*/

    
public static int getDEFAULT_MAX_INDEX_PAGES() {
        
return DEFAULT_MAX_INDEX_PAGES;
    }


    
/**
     * 
@return Returns the maxIndexPages.
     
*/

    
public int getMaxIndexPages() {
        
return maxIndexPages;
    }


    
/**
     * 
@param maxIndexPages
     *            The maxIndexPages to set.
     
*/

    
public void setMaxIndexPages(int maxIndexPages) {
        
this.maxIndexPages = maxIndexPages;
    }


    
/**
     * 
@return Returns the index.
     
*/

    
public String getIndex() {
        
return index;
    }


    
/**
     * 
@param index
     *            The index to set.
     
*/

    
public void setIndex(String index) {
        
this.index = index;
    }


    
/**
     * 
     * 
@return
     
*/

    
public int getPage() {
        
int page = getOffset() / this.maxPageItems + 1;
        
return page;
    }


    
/**
     * 
     * 
@return
     
*/

    
public int getPreviousPage() {
        
if (!hasPreviousPage())
            
return 1;
        
return getPage() - 1;
    }


    
/**
     * 
     * 
@return
     
*/

    
public int getTotalPage() {
        
if (getTotalCount() == 0)
            
return 0;
        
else
            
return getTotalCount() / this.maxPageItems + 1;
    }


    
/**
     * 
     * 
@return
     
*/

    
public int getNextPage() {
        
if (!hasNextPage())
            
return getTotalPage();
        
else
            
return this.getPage() + 1;
    }


    
public boolean hasNextPage() {
        
if (getPage() >= getTotalPage())
            
return false;
        
else
            
return true;
    }


    
public boolean hasPreviousPage() {
        
if (getPage() >= 1)
            
return true;
        
else
            
return false;
    }

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这是一段使用Java代码实现分页查询的示例: ``` import java.sql.*; public class PageQuery { static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/testdb"; static final String USER = "root"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { Class.forName(JDBC_DRIVER); System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); System.out.println("Creating statement..."); stmt = conn.createStatement(); int pageSize = 10; int page = 1; int startIndex = (page - 1) * pageSize; String sql = "SELECT * FROM employees LIMIT " + startIndex + "," + pageSize; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); } rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { se.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (stmt != null) stmt.close(); } catch (SQLException se2) { } try { if (conn != null) conn.close(); } catch (SQLException se) { se.printStackTrace(); } } } } ``` 请注意,这仅仅是一个示例,你需要根据自己的实际情况替换相关的数据库信息,如数据库地址,用户名和密码等。 ### 回答2: 以下是一个简单的 Java 代码示例,用于分页查询: ```java import java.util.ArrayList; import java.util.List; public class PaginationExample { private static List<String> dataList; // 数据集 static { // 初始化数据集 dataList = new ArrayList<>(); for (int i = 1; i <= 100; i++) { dataList.add("数据-" + i); } } public static List<String> getPageData(int pageNo, int pageSize) { List<String> pageData = new ArrayList<>(); int startIndex = (pageNo - 1) * pageSize; int endIndex = Math.min(startIndex + pageSize, dataList.size()); for (int i = startIndex; i < endIndex; i++) { pageData.add(dataList.get(i)); } return pageData; } public static void main(String[] args) { int pageNo = 2; // 页码 int pageSize = 10; // 每页数据量 List<String> pageData = getPageData(pageNo, pageSize); // 打印分页数据 for (String data : pageData) { System.out.println(data); } } } ``` 在这个示例中,我们有一个名为 `dataList` 的静态数据集,其中存储了 100 条数据。`getPageData` 方法根据传入的页码(`pageNo`)和每页数据量(`pageSize`)计算出起始索引和结束索引,然后从数据集中获取对应范围的数据,并将其存储在 `pageData` 列表中返回。在 `main` 方法中,我们设置页码为 2,每页数据量为 10,并通过调用 `getPageData` 方法获取第二页数据,并将其打印输出。 ### 回答3: 以下是一个简单的Java代码示例,用于实现分页查询: ```java import java.util.ArrayList; import java.util.List; public class PagingExample { public static void main(String[] args) { // 假设数据源为一个包含10个元素的List List<String> dataSource = new ArrayList<>(); for (int i = 1; i <= 10; i++) { dataSource.add("元素 " + i); } int page = 2; // 当前页码 int pageSize = 3; // 每页显示的元素数量 // 计算起始索引和结束索引 int startIndex = (page - 1) * pageSize; int endIndex = Math.min(startIndex + pageSize, dataSource.size()); // 根据索引获取当前页的数据 List<String> currentPage = dataSource.subList(startIndex, endIndex); // 打印当前页的数据 for (String element : currentPage) { System.out.println(element); } } } ``` 这段代码在假设数据源为一个包含10个元素的List的情况下,实现了分页查询功能。在此示例中,设置了当前页码为2,每页显示3个元素。代码通过计算起始索引和结束索引,利用`subList`方法从数据源中获取当前页的数据,并将其打印输出。输出结果为第2页的3个元素:"元素 4"、"元素 5"和"元素 6"。请注意,实际应用中,可能需要添加更多的异常处理和输入验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值