(java问题)代码如下:在编写dao类是就是不进while循环。(我连接的是Oracle数据库) 15

DBUtil类的查询提取方法如下:/***查询的提取方法*@paramsql*@paramparam*@return*/publicstaticResultSetexec... DBUtil类的查询提取方法如下:
/**
* 查询的提取方法
* @param sql
* @param param
* @return
*/
public static ResultSet executeQuery(String sql,Object[] param){
ResultSet rs=null;
Connection con=getConnection();
PreparedStatement pstmt=null;
try {
pstmt=con.prepareStatement(sql);
if(param!=null){
for (int i = 0; i < param.length; i++) {
pstmt.setObject(i+1, param[i]);
}
}
rs=pstmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
DAO类如下:
public class UserInfoDao {
private ResultSet rs=null;
/**
* 根据登陆名和密码查询
* @param vo
* @return
*/
public UserInfoVo getUserInfo(String logName,String pwd){
UserInfoVo bean=null;
String sql="select * from userInfo where LoginName=? and PassWord=?";
Object[] param={logName,pwd};
rs=DBUtil.executeQuery(sql, param);
try {
while(rs.next()){
System.out.println("******");
bean=new UserInfoVo();
bean.setLoginName(rs.getString(1));
bean.setUserName(rs.getString(2));
bean.setPassWord(rs.getString(3));
bean.setAge(rs.getInt(4));
bean.setAddress(rs.getString(5));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtil.closeAll(null, null, rs);
}
return bean;
}

public static void main(String[] args) {
UserInfoVo vo=new UserInfoDao().getUserInfo("gao", "12345");
System.out.println(vo);
}
}
运行后结果为:null
过了一段时间我什么也没改动,一下又成功进入while循环。
我昨天也遇到一个同样奇怪的问题。在进行查询操作时:原数据库里面添加的数据查询不到,当在外部添加一条时:再次查询就只看到外部添加的。原数据库里的数据查不出来。
当我第二天再次打开工程运行时:查询的数据全部成功的出来了。
我一个同学连的是sqlserver2005就没有出现这样的问题。
(难道跟数据库有关吗???)望大虾指点。
补充:这个问题不是代码问题,我之前于之后什么代码也没改。就是过了一段时间,又运行成功。在测试的时候:一个是调用方法没有进入while循环里。另一个问题是进行查询操作时,查询的只是新添加的数据。原本数据库不止这些数据。
展开
 我来答
fkpac3
2011-09-17 · 超过31用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:63.1万
展开全部
不进入循环应该就是查询结果有问题。如果确认数据库中友数据的时候不妨看看是不是登陆用户不一样。
第二个问题应该就是进行了增删操作以后没有使用commit提交的原因了
空灵P
2011-09-17 · 超过24用户采纳过TA的回答
知道答主
回答量:82
采纳率:100%
帮助的人:65.1万
展开全部
你在Oracle内添加的数据没有进行提交
提交命令commit
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
laladin
2011-09-17
知道答主
回答量:3
采纳率:0%
帮助的人:5057
展开全部
你这种情况,只有下断点跟,就这样贴部份带码,也不知道具体的情况。另外Oracle添加数据后需要commit。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老师小乔
2011-09-17 · TA获得超过3680个赞
知道大有可为答主
回答量:1985
采纳率:66%
帮助的人:692万
展开全部
这样,你可以在你的控制语句的地方,频繁的输出数据,依此来判断自己写的程序的漏洞。比如在对每一个“?”赋完值后,将sql语句输出,看看赋值和语句是否正确。可以试一下……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-18
展开全部
这个问题,你可以在关键点打个断点,进行调试,看看效果。是不是每走一步都能得到你想要的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式