知道美河 | 上传资料 | VIP申请 | 精品课程 | 资料搜索 | 问题反馈 | 会员手册 | 积分消费 | 积分充值 | 帐号保护
美河学习学习在线赞助VIP

美河学习在线(主站) eimhe.com

 找回密码
 建立账号
查看: 6079|回复: 3

[原创] 最近在研究struts分页,高手给些指点.

[复制链接]
发表于 2007-1-11 01:03:09 | 显示全部楼层 |阅读模式
在网上看了一天关于struts分页的东东.思想有一点点..

同时也运行了二个别人写的分页.感觉存在错误,运行不起来...

郁闷的是,,为什么还会有人评论,不错..很好之类的..真的晕了..

发现只看书.进步的速度太慢,所以还是搞实际的例子.....希望有过这方面经验的前辈..多多指点..
发表于 2007-1-11 12:10:00 | 显示全部楼层
分页这东西也没什么难的,说来说去无非就是写一个page类,里面有四个属性,pageSize,totalPage,currentPage,totalSize,用的时候就去new 这个类,然后配合jstl,就OK了.
发表于 2007-1-16 09:49:41 | 显示全部楼层
发表于 2007-4-3 10:08:32 | 显示全部楼层
提供sybase12.5之前的分页:采用临时表
public ArrayList<ArrayList> queryByPage(int intRecordsPerPage,
                        int intCurrentPage, String sql) throws Exception {
                ArrayList<ArrayList> alPage = new ArrayList<ArrayList>();
                Connection conn = null;
                Statement stmt = null;
                ResultSet rs = null;
                StringBuilder sbTtmpTableName = new StringBuilder(UUID.randomUUID()
                                .toString());
                sbTtmpTableName.deleteCharAt(8);
                sbTtmpTableName.deleteCharAt(12);
                sbTtmpTableName.deleteCharAt(16);
                sbTtmpTableName.deleteCharAt(20);
                sbTtmpTableName.setCharAt(0, 't');
                String tmpTableName = sbTtmpTableName.substring(0, 30);

                try {

                        conn = getConnection();
                        stmt = conn.createStatement();

                        StringBuilder sqlCreTmpTable = new StringBuilder(sql);
                        int selectStartIndex = sql.indexOf("select");
                        sqlCreTmpTable.replace(selectStartIndex, selectStartIndex + 7,
                                        "select _sybid=identity(12),");
                        int fromStartIndex = sqlCreTmpTable.indexOf("from");
                        sqlCreTmpTable.replace(fromStartIndex, fromStartIndex + 4,
                                        "into tempdb.." + tmpTableName + " from");
                        System.out.println("*** " + sqlCreTmpTable.toString());

                        stmt.executeUpdate(sqlCreTmpTable.toString());
                        int start = (intCurrentPage - 1) * intRecordsPerPage;
                        int end = intCurrentPage * intRecordsPerPage;
                        String sqlPage = "select * from tempdb.." + tmpTableName
                                        + " where _sybid>" + start + " and _sybid<=" + end;
                        rs = stmt.executeQuery(sqlPage);

                        ResultSetMetaData rsmd = rs.getMetaData();

                        int cols = rsmd.getColumnCount();

                        while (rs.next()) {
                                ArrayList<String> alRow = new ArrayList<String>();
                                for (int i = 1; i <= cols; ++i) {
                                        if (rs.getString(i) == null) {
                                                alRow.add("null");
                                        } else {
                                                alRow.add(rs.getString(i));
                                        }
                                }
                                alPage.add(alRow);
                        }
                } catch (SQLException e) {
                        e.printStackTrace();
                        throw new RuntimeException("数据库访问异常");
                } finally {
                        stmt.executeUpdate("truncate table tempdb.." + tmpTableName);
                        stmt.executeUpdate("drop table tempdb.." + tmpTableName);

                        try {
                                if (rs != null) {
                                        rs.close();
                                }
                                if (stmt != null) {
                                        stmt.close();
                                }
                                if (conn != null) {
                                        conn.close();
                                }
                        } catch (SQLException e) {
                                e.printStackTrace();
                                throw new RuntimeException("资源关闭异常");
                        }
                }
                return alPage;
        }
您需要登录后才可以回帖 登录 | 建立账号

本版积分规则

 
QQ在线咨询

QQ|小黑屋|手机版|Archiver|美河学习在线 ( 浙网备33020302000026号 )

GMT+8, 2025-5-3 17:26

Powered by Discuz!

© 2001-2025 eimhe.com.

快速回复 返回顶部 返回列表