(1)处换成while (rs.next()){
System.out.println(rs.getString(1));
}
试试,但是你下面说的打印rs.next()是false,是不是就没值啊
System.out.println(rs.getString(1));
}
试试,但是你下面说的打印rs.next()是false,是不是就没值啊
解决方案 »
- struts2 页面跳转问题。急!
- java.lang.NoClassDefFoundError: org/apache/commons/collections/map/MultiKeyMap
- hibernate映射的问题: type="java.lang.String" style="string"
- EJB3.0客户端找不到接口的问题
- 请各位高手指教:uploadbean组件的问题
- 谁知道这本书有中文版~~~急
- JAVA SWING中的标签数组显示文本字符串
- rss采集网上新闻,html采集新闻的方式 这种问题怎么解决?
- 各位高手救命啊!
- 如果一个方法包含在事物中,那么该方法可以视为同步吗?
- jbpm工程中如何配置Hibernate配置文件,路径?求高手帮忙解决!
- ActiveMQ客户端内存溢出
......
rs = pstmt.executeQuery() ;
System.out.println(rs.next());(1)
if(rs.next()){
System.out.println(rs.getString(1));}
程序输出结果如下:
admin
123
false
按大家所说,假如不rs.next(),是取不到值的,既然(1)处为false了,怎么还能进入if,进入if后怎么会输出两个字段的值,最后还输出了false.希望哪个高手给讲讲。
我所理解的程序输出结果应该是:
false
admin
不知道哪个地方理解的不对
System.out.println(rs.next());(1)
if(rs.next()){
System.out.println(rs.getString(1));}
}
还是这样的
if(rs.next()){
System.out.println(rs.getString(1));}
}
System.out.println(rs.next());(1)我觉得你写的是第二种,一腻味你的输出是
admin
123
false
这么个顺序,如果是第二种,肯定是false啊,不管你rs怎么样都是false,因为你上面if读完了走到这里说明rs引用没有了.
System.out.println(rs.next());(1)
if(rs.next()){
System.out.println(rs.getString(1));}
}
当时只是为了测试用,把(1)放在了前面,结果却发现了很多问题都不明白。
按这种写法,我输出的结果仍然是:
admin
123
false
System.out.println(rs.next());(1)
if(rs.next()){
System.out.println(rs.getString(1));
System.out.println(“test”);
}
我输出的结果仍然是:
admin
123
false
test 也没输出,我重启Tomcat,重新登录界面,还是这个问题,从来没遇到过。我想还是程序的思路不对吧,还是rs.next()有问题
String DBDriver="org.git.mm.mysql.Driver";
String url="jdbc:mysql://localhost:3306/test?user=root&password=root";
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs =null;
%>
<% // 接收参数
String id = request.getParameter("id") ;
String password = request.getParameter("password") ;
%>
<%
String sql = "SELECT * FROM person WHERE id=? and password=?" ;
try
{
Class.forName(DBDriver).newInstance();
conn=DriverManager.getConnection(url);
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,id) ;
pstmt.setString(2,password) ;
rs = pstmt.executeQuery() ;
if(rs.next())
{
System.out.println(rs.getString(1));
session.setAttribute("uname",rs.getString(1)) ;
}
else
{
// 保存错误信息
request.setAttribute("err","错误的用户名及密码!!!") ;
}
rs.close() ;
pstmt.close() ;
conn.close() ;
}
catch(Exception e)
{}
%>
刚刚重新调整了程序,发现错误的根本原因还是rs.next()一直为false,程序更本没有运行到if里,看来还是数据库连接中出了错。可就是不知到错在哪
1.我的程序一直就没执行到if(){}里面至于为什么会输出:admin 123 是因为我在做测试时曾用 system.out.println(name); system.out.println(password);测试,所以控制台输出的是从前一页面接收到的值,而不是数据库中的值,所以在输出数据后仍然会打印false
2.最主要的错误还是这里:
String DBDriver="com.mysql.jdbc.Driver";
String DBDriver="org.git.mm.mysql.Driver";
这是在做最后检查时,怀疑出的问题,果然是这里,我不知道这两个驱动到底有什么区别,总之String DBDriver="org.git.mm.mysql.Driver";就不能进行连接数据库,希望哪位朋友知道两个的区别和使用条件,请继续跟贴,详细说说!