通过bboss persistent框架实现数据库分页查询功能

bboss项目下载列表 在sourceforge访问地址为:
https://sourceforge.net/project/showfiles.php?group_id=238653
本介绍通过bboss persistent框架实现高效的分页查询操作,本框架提供的分页查询接口可以分为预编译分页查询和普通分页查询接口。分别介绍如下。
1.准备工作
定义表结构testnewface:
 名称                                                                                                                                                                                                                                                                                 
 -----------------------------------------是否为空? 类型 ---------- -------- --------------

 OWNER                                    NOT NULL VARCHAR2(30)
 OBJECT_NAME                              NOT NULL VARCHAR2(30)
 SUBOBJECT_NAME                                    VARCHAR2(30)
 OBJECT_ID                                NOT NULL NUMBER
 DATA_OBJECT_ID                                    NUMBER
 OBJECT_TYPE                                       VARCHAR2(19)
 CREATED                                  NOT NULL DATE
 LAST_DDL_TIME                            NOT NULL DATE
 TIMESTAMP                                         VARCHAR2(19)
 STATUS                                            VARCHAR2(7)
 TEMPORARY                                         VARCHAR2(1)
 GENERATED                                         VARCHAR2(1)
 SECONDARY                                         VARCHAR2(1)

定义java值对象,属性名称与testnewface表的列名一致:
public class TestNewface {
        String OWNER          ;
        String  OBJECT_NAME    ;
        String   SUBOBJECT_NAME   ;
        int   OBJECT_ID     ;
        int  DATA_OBJECT_ID  ;
        String   OBJECT_TYPE     ;
        Date  CREATED          ;
        Date LAST_DDL_TIME    ;
        String  TIMESTAMP        ;
        String  STATUS         ;
        String  TEMPORARY      ;
        String   GENERATED     ;
        String   SECONDARY    ;
        public String getOWNER() {
                return OWNER;
        }
        public void setOWNER(String owner) {
                OWNER = owner;
        }
        public String getOBJECT_NAME() {
                return OBJECT_NAME;
        }
        public void setOBJECT_NAME(String object_name) {
                OBJECT_NAME = object_name;
        }
        public String getSUBOBJECT_NAME() {
                return SUBOBJECT_NAME;
        }
        public void setSUBOBJECT_NAME(String subobject_name) {
                SUBOBJECT_NAME = subobject_name;
        }
        public int getOBJECT_ID() {
                return OBJECT_ID;
        }
        public void setOBJECT_ID(int object_id) {
                OBJECT_ID = object_id;
        }
        public int getDATA_OBJECT_ID() {
                return DATA_OBJECT_ID;
        }
        public void setDATA_OBJECT_ID(int data_object_id) {
                DATA_OBJECT_ID = data_object_id;
        }
        public String getOBJECT_TYPE() {
                return OBJECT_TYPE;
        }
        public void setOBJECT_TYPE(String object_type) {
                OBJECT_TYPE = object_type;
        }
        public Date getCREATED() {
                return CREATED;
        }
        public void setCREATED(Date created) {
                CREATED = created;
        }
        public Date getLAST_DDL_TIME() {
                return LAST_DDL_TIME;
        }
        public void setLAST_DDL_TIME(Date last_ddl_time) {
                LAST_DDL_TIME = last_ddl_time;
        }
        public String getTIMESTAMP() {
                return TIMESTAMP;
        }
        public void setTIMESTAMP(String timestamp) {
                TIMESTAMP = timestamp;
        }
        public String getSTATUS() {
                return STATUS;
        }
        public void setSTATUS(String status) {
                STATUS = status;
        }
        public String getTEMPORARY() {
                return TEMPORARY;
        }
        public void setTEMPORARY(String temporary) {
                TEMPORARY = temporary;
        }
        public String getGENERATED() {
                return GENERATED;
        }
        public void setGENERATED(String generated) {
                GENERATED = generated;
        }
        public String getSECONDARY() {
                return SECONDARY;
        }
        public void setSECONDARY(String secondary) {
                SECONDARY = secondary;
        }
       
        public String toString()
        {
                StringBuffer ret = new StringBuffer();
                ret.append("[OWNER=").append(OWNER).append("]")
                .append("[OBJECT_NAME=").append(OBJECT_NAME).append("]")
                .append("[SUBOBJECT_NAME=").append(SUBOBJECT_NAME).append("]")
                .append("[OBJECT_ID=").append(OBJECT_ID).append("]")
                .append("[DATA_OBJECT_ID=").append(DATA_OBJECT_ID).append("]")
                .append("[OBJECT_TYPE=").append(OBJECT_TYPE).append("]")
                .append("[CREATED=").append(CREATED).append("]")
                .append("[LAST_DDL_TIME=").append(LAST_DDL_TIME).append("]")
                .append("[TIMESTAMP=").append(TIMESTAMP).append("]")
                .append("[STATUS=").append(STATUS).append("]")
                .append("[TEMPORARY=").append(TEMPORARY).append("]")
                .append("[GENERATED=").append(GENERATED).append("]")
                .append("[SECONDARY=").append(SECONDARY).append("]");
                return ret.toString();
        }
}

 

2.普通分页查询:

        {
                DBUtil dbUtil = new DBUtil();
                try {
                        List list = dbUtil.executeSelectForList("select * from testnewface where object_id",
                                                                                                                        0,//offset分页数据的起点
                                                                                                                        100, //每页最多取100条
                                                                                                                        TestNewface.class);
                        //list中存放当前页面的TestNewface对象列表,从0开始,每页取100条,第二页的数据从将从100开始。
                        for(int i = 0;
                                        i < list.size();//当前页面的数据条数
                                                i ++)
                        {
                                System.out.println(list.get(i));
                        }
                       
                        int totalsize = dbUtil.getTotalSize();//总记录数
                       
                       
                } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
        }

3.预编译分页查询

PreparedDBUtil dbUtil = new PreparedDBUtil();
                try {
                        dbUtil.preparedSelect("select * from testnewface where object_id < ?",
                                                                                                                        0,//offset分页数据的起点
                                                                                                                        100 //每页最多取100条
                                                                                                                        );
                        dbUtil.setInt(1, 100000);
                        List list = dbUtil.executePreparedForList(TestNewface.class);
                        //list中存放当前页面的TestNewface对象列表,从0开始,每页取100条,第二页的数据从将从100开始。
                        for(int i = 0;
                                        i < list.size();//当前页面的数据条数
                                                i ++)
                        {
                                System.out.println(list.get(i));
                        }
                       
                        int totalsize = dbUtil.getTotalSize();//总记录数
                       
                       
                } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值