String sql = "select * from dc_user where 1=1 and name = 'admin' and password = '123'";
rs = stmt.executeQuery(sql);
这样在程序中查,查不出东西来,结果集为空
但是直接在数据库里select * from dc_user where 1=1 and name = 'admin' and password = '123'; 却能查出数据
这是为什么?
用的是oracle
rs = stmt.executeQuery(sql);
这样在程序中查,查不出东西来,结果集为空
但是直接在数据库里select * from dc_user where 1=1 and name = 'admin' and password = '123'; 却能查出数据
这是为什么?
用的是oracle
先确定你的Connection能够正确取到
然后对查出的rs 进行迭代处理while(rs.next()){...}的时候,发现while里面的东西根本不执行
就这么滴 - -
2、rs = stmt.executeQuery(sql);跟踪这一句确认执行时stmt是否为null
3、换sql查询别的表的数据
while不执行,你跟踪一下看看rs是不是为空呢?或者就是你的while写的不对
rs.next()是指向找到的下一条数据
System.out.println("bbbbbbbbbbbbb");
System.out.println(rs.getString("name"));
}
这个不执行
System.out.println("rs.next()===>"+rs.next());
while(rs.next()){
System.out.println("111");
}
System.out.println(rs.getString("name"));
或者换成System.out.println(rs.getString(0));
/* sql语句这样写,什么都查不出 */
String sql = "select * from dc_user where 1=1 and name = 'admin' and password = '123'";
rs = stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("name"));
}/* sql语句这样写,可以查出 */
String sql = "select * from dc_user where 1=1 ";
rs = stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("name"));
}大家帮我看看sql语句哪不对?
dc_user里有2条数据:
id name password
-- ---- --------
1 admin 123
2 dudu 123
用的oracle
谢谢!
在“1=1”和“and name=”之间有两个空格~ 我删了一个空格 就好了
- - !
是不是条件之间不能乱加空格啊?
你们遇到过吗?
-----------------
yesjoy(卫卫) ( ) 信誉:74 Blog 加为好友 2007-04-20 17:21:39 得分: 0
应该是不允许非法空格,可能两个空格中有一个是中文字符下的空格。
你可以多加几个空格测试一下,应该没有问题的
----------------
因此不能作为调试程序的依据