在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); }