oracle 分页查询问题,求高手帮忙! 20

我在PL/SQLDeveloper中测试的一个分页查询,没有问题,但是在java中,使用PreparedStatement却查询不出来结果,要么就查询出的记录数与PL/S... 我在PL/SQL Developer 中测试的一个分页查询,没有问题,但是在java中,使用PreparedStatement却查询不出来结果,要么就查询出的记录数与PL/SQL Developer中出来的不一致,具体代码如下:
找不出什么问题,分页代码肯定没错,myeclipse中没报错,而且当查询pageNo=1,pageSize=10能查询出四条记录
public List<User> getUserList(int pageNo, int pageSize) {
StringBuilder sb = new StringBuilder();
sb.append("select * from ")
.append("(")
.append("select rownum rn, a.user_id, a.user_name, a.password, a.contact_tel, a.email, a.create_date from ")
.append("(")
.append("select user_id, user_name, password, contact_tel, email, create_date ")
.append("from t_user where user_name order by user_id")
.append(") a where rownum <= ? ")
.append(") where rn > ? ");

String sql = sb.toString();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<User> user_list = new ArrayList<User>();

try {
conn = DbUtil.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, pageNo * pageSize);
pstmt.setInt(2, (pageNo-1) * pageSize);
System.out.println("sql=" + sql);
rs = pstmt.executeQuery();
while(rs.next()) {
User user = new User();
user.setUserId(rs.getString("user_id"));
user.setUserName(rs.getString("user_name"));
user.setPassword(rs.getString("password"));
user.setContactTel(rs.getString("contact_tel"));
user.setEmail(rs.getString("email"));
user.setCreateDate(rs.getTimestamp("create_date"));
user_list.add(user);
}
}catch (Exception e) {
e.printStackTrace();
}finally {
DbUtil.close(rs);
DbUtil.close(pstmt);
DbUtil.close(conn);
}
return user_list;
}
展开
 我来答
百度网友07553bf0
2013-12-09 · TA获得超过1986个赞
知道大有可为答主
回答量:2464
采纳率:75%
帮助的人:1842万
展开全部
分页的示例:
分页

SELECT * FROM (
SELECT * FROM (
SELECT name, population,
rownum AS rn
FROM cities
WHERE state='Florida'
ORDER BY population DESC
) WHERE rownum <= 20
) WHERE rn > 10;
常尔02U
2013-12-07 · TA获得超过132个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:225万
展开全部
append("from t_user where user_name order by user_id")

里面这个user_name是什么意思?
追问
是用户名,根据用户名排序啊,分页查询是没有问题的,我在oracle中试验过
追答
没看懂,既然是排序,怎么会在where 后面呢,不应该是咋order by 后面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式