jdbc select数据库中数据时rs.next()明明是true,可是就是进不去while(rs.next())循环中
下面是我的代码,运行后的结果为:sssssssssstrue说明while(rs.next())循环没进去程序就结束了,可是明明rs.next()是true啊,而且sql...
下面是我的代码,运行后的结果为:
ssssssssss
true
说明while(rs.next())循环没进去程序就结束了,可是明明rs.next()是true啊,而且sql语句并没有写错,数据库中也都是英文,没有汉字,其他和它一样的代码只是查询的表不同都成功了,就这个不成功不明白为什么,哪个高手帮帮忙,找出可能的原因,谢谢
String sql="select*from shop_info where isuse='1'";
try {
pstmt = JDBCManager.getConn().prepareStatement(sql);
//pstmt.setString(1,"1");
rs=pstmt.executeQuery();
System.out.println("ssssssssss");
System.out.println(rs.next()) //输出true!!!!;
while(rs.next()){
System.out.println("进入循环中");//没执行这条!!!!!!!?
String name=rs.getString(1);
String sddress=rs.getString(2);
String phone=rs.getString(3);
list.add(new shop(name,sddress,phone));
System.out.println("查找成功");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//System.out.println("查找shibai");
}
finally{
if(pstmt!=null){
。。。。。。 展开
ssssssssss
true
说明while(rs.next())循环没进去程序就结束了,可是明明rs.next()是true啊,而且sql语句并没有写错,数据库中也都是英文,没有汉字,其他和它一样的代码只是查询的表不同都成功了,就这个不成功不明白为什么,哪个高手帮帮忙,找出可能的原因,谢谢
String sql="select*from shop_info where isuse='1'";
try {
pstmt = JDBCManager.getConn().prepareStatement(sql);
//pstmt.setString(1,"1");
rs=pstmt.executeQuery();
System.out.println("ssssssssss");
System.out.println(rs.next()) //输出true!!!!;
while(rs.next()){
System.out.println("进入循环中");//没执行这条!!!!!!!?
String name=rs.getString(1);
String sddress=rs.getString(2);
String phone=rs.getString(3);
list.add(new shop(name,sddress,phone));
System.out.println("查找成功");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//System.out.println("查找shibai");
}
finally{
if(pstmt!=null){
。。。。。。 展开
4个回答
展开全部
哥们你的这个问题解决了吗?我也遇到了,就是不执行,到底怎么回事啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误示例:
ResultSet rs = ps.executeQuery();
System.out.println(rs.next());
while(rs.next()) {
name= rs.getString("name");
}
正确示例:
ResultSet rs = ps.executeQuery();
while(rs.next()) {
name= rs.getString("name");
}
错误代码:System.out.println(rs.next());
原因:因为rs.next()是游标,可以看成指针,当System.out.println(rs.next());输出来之后,就代表该指针已经获取了第一行的数据。因此进入while(rs.next){
}时,指针再向下走就会获取第二行的数据,刚好你没有第二行数据,因此返回false。
ResultSet rs = ps.executeQuery();
System.out.println(rs.next());
while(rs.next()) {
name= rs.getString("name");
}
正确示例:
ResultSet rs = ps.executeQuery();
while(rs.next()) {
name= rs.getString("name");
}
错误代码:System.out.println(rs.next());
原因:因为rs.next()是游标,可以看成指针,当System.out.println(rs.next());输出来之后,就代表该指针已经获取了第一行的数据。因此进入while(rs.next){
}时,指针再向下走就会获取第二行的数据,刚好你没有第二行数据,因此返回false。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2018-03-24
展开全部
我也遇到这种情况,但是我这边能查到结果的为true,查不到的为false
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询