在oracle數據庫中查詢結果的行號使用偽列rownum表示(從1開始)。例如select * from employee where rownum<10 返回前10條記錄。但因為rownum是在查詢之后排序之前賦值的,所以查詢employee按birthday排序的第100到120條記錄應該這么寫: [pre] select * from ( select my_table.*, rownum as my_rownum from ( select name, birthday from employee order by birthday ) my_table where rownum <120 ) where my_rownum>=100 [/pre] mysql可以使用limit子句: select name, birthday from employee order by birthday limit 99,20 db2有rownumber()函數用于獲取當前行數。 sql server沒研究過,可以參考這篇文章:http://www.csdn.net/develop/article/18/18627.shtm
//system.out.println("avacount:"+avacount); //system.out.println("totalsize:"+totalsize); if (avacount>totalsize) { //throw new runtimeexception("記錄條數大于總條數?!"); }
/** *生成查詢一頁數據的sql語句 *@param sql 原查詢語句 *@startindex 開始記錄位置 *@size 需要獲取的記錄數 */ protected abstract string intiquerysql(string sql, int startindex, int size);
/** *使用給出的對象設置指定參數的值 *@param index 第一個參數為1,第二個為2,。。。 *@param obj 包含參數值的對象 */ public void setobject(int index, object obj) throws sqlexception{ boundparam bp = new boundparam(index, obj); boundparams.remove(bp); boundparams.add( bp); }
/** *使用給出的對象設置指定參數的值 *@param index 第一個參數為1,第二個為2,。。。 *@param obj 包含參數值的對象 *@param targetsqltype 參數的數據庫類型 */ public void setobject(int index, object obj, int targetsqltype) throws sqlexception{ boundparam bp = new boundparam(index, obj, targetsqltype); boundparams.remove(bp); boundparams.add(bp ); }
/** *使用給出的對象設置指定參數的值 *@param index 第一個參數為1,第二個為2,。。。 *@param obj 包含參數值的對象 *@param targetsqltype 參數的數據庫類型(常量定義在java.sql.types中) *@param scale 精度,小數點后的位數 * (只對targetsqltype是types.number或types.decimal有效,其它類型則忽略) */ public void setobject(int index, object obj, int targetsqltype, int scale) throws sqlexception{ boundparam bp = new boundparam(index, obj, targetsqltype, scale) ; boundparams.remove(bp); boundparams.add(bp); }
/** *使用給出的字符串設置指定參數的值 *@param index 第一個參數為1,第二個為2,。。。 *@param str 包含參數值的字符串 */ public void setstring(int index, string str)throws sqlexception{ boundparam bp = new boundparam(index, str) ; boundparams.remove(bp); boundparams.add(bp); }
/** *使用給出的字符串設置指定參數的值 *@param index 第一個參數為1,第二個為2,。。。 *@param timestamp 包含參數值的時間戳 */ public void settimestamp(int index, timestamp timestamp)throws sqlexception{ boundparam bp = new boundparam(index, timestamp) ; boundparams.remove(bp); boundparams.add( bp ); }
/** *使用給出的整數設置指定參數的值 *@param index 第一個參數為1,第二個為2,。。。 *@param value 包含參數值的整數 */ public void setint(int index, int value)throws sqlexception{ boundparam bp = new boundparam(index, new integer(value)) ; boundparams.remove(bp); boundparams.add( bp ); }
/** *使用給出的長整數設置指定參數的值 *@param index 第一個參數為1,第二個為2,。。。 *@param value 包含參數值的長整數 */ public void setlong(int index, long value)throws sqlexception{ boundparam bp = new boundparam(index, new long(value)) ; boundparams.remove(bp); boundparams.add( bp ); }
/** *使用給出的雙精度浮點數設置指定參數的值 *@param index 第一個參數為1,第二個為2,。。。 *@param value 包含參數值的雙精度浮點數 */ public void setdouble(int index, double value)throws sqlexception{ boundparam bp = new boundparam(index, new double(value)) ; boundparams.remove(bp); boundparams.add( bp); }
/** *使用給出的bigdecimal設置指定參數的值 *@param index 第一個參數為1,第二個為2,。。。 *@param bd 包含參數值的bigdecimal */ public void setbigdecimal(int index, bigdecimal bd)throws sqlexception{ boundparam bp = new boundparam(index, bd ) ; boundparams.remove(bp); boundparams.add( bp); }