<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1430;DatabaseName=test";
String user="sa";
String password="123";
Connection conn=null;
conn=DriverManager.getConnection(url,user,password);
if(conn!=null){ out.print(" conn!=null"); }
Statement stmt=conn.createStatement();
String sql="select * from Table_1";
ResultSet rs= stmt.executeQuery(sql);
%>
<%
while(rs.next()) {
out.print(" 进了循环");
out.print(rs.getString(1));
}
if(rs!=null){ out.print(" rs!=null"); }
%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
table1是我建立的一个表,a,b两列的值都是int类型的,不为空。
打印结果是
conn!=null rs!=null
发现没有进入while(rs.next())循环体,为什么???
------解决方案--------------------------------------------------------
一种可能表中没数据!
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
rs!=null 只代表rs这个变量不为空
不代表你查出来数据了
这个很明显是查询没有查询出来结果
返回的ResultSet 结果集中没有数据
他直接返回一个 size 为 0 的ResultSet 集合
举个例子
就相当于 ArrayList s = new ArrayList();
s 有指向 但是 s的size为0
------解决方案--------------------------------------------------------
俺也学学
------解决方案--------------------------------------------------------