实例讲解JSP获取ResultSet结果集中的数据的方法
获得所有的记录
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%> <%@pageimport="java.sql.*"%> <!DOCTYPEhtml> <html> <head> <title>查询所有用户的记录</title> </head> <body> <% Stringurl="jdbc:mysql://localhost:3306/javaweb";//连接数据库的url地址 Stringuser="root";//登录数据库的用户名 Stringpassword="zhangda890126;;";//登录数据库的用户名的密码 Connectionconn=null; try{ Class.forName("com.mysql.jdbc.Driver");//加载JDBC驱动程序 conn=DriverManager.getConnection(url,user,password);//链接数据库 }catch(ClassNotFoundExceptione){ out.println("找不到驱动类");//抛出异常时,提示信息 }catch(SQLExceptione){ out.println("链接MySQL数据库失败");//处理SQLException异常 } try{ Statementstmt=conn.createStatement();//创建语句对象Statement StringqueryAll="SELECT*FROMuser";//查询所有的用户 ResultSetrs=stmt.executeQuery(queryAll); while(rs.next()){ intuserid=rs.getInt(1);//获取第一个字段userid的值 Stringusername=rs.getString(2);//获取第二个字段username的值 Stringuserpassword=rs.getString(3);//获取第三个字段password的值 //打印出所有的用户的信息 out.println("用户ID:"+userid+"用户名:"+username+"用户的密码"+userpassword+"<br/>"); } }catch(SQLExceptione){ out.println("查询所有用户信息失败"); } %> </body> </html>
获得所有的记录中的指定字段的记录
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%> <%@pageimport="java.sql.*"%> <!DOCTYPEhtml> <html> <head> <title>查询所有用户的记录的用户id和用户名</title> </head> <body> <% Stringurl="jdbc:mysql://localhost:3306/javaweb";//连接数据库的url地址 Stringuser="root";//登录数据库的用户名 Stringpassword="zhangda890126;;";//登录数据库的用户名的密码 Connectionconn=null; try{ Class.forName("com.mysql.jdbc.Driver");//加载JDBC驱动程序 conn=DriverManager.getConnection(url,user,password);//链接数据库 }catch(ClassNotFoundExceptione){ out.println("找不到驱动类");//抛出异常时,提示信息 }catch(SQLExceptione){ out.println("链接MySQL数据库失败");//处理SQLException异常 } try{ Statementstmt=conn.createStatement();//创建语句对象Statement StringqueryAll="SELECTuserid,usernameFROMuser";//查询所有的用户 ResultSetrs=stmt.executeQuery(queryAll); while(rs.next()){ intuserid=rs.getInt(1);//获取第一个字段userid的值 Stringusername=rs.getString(2);//获取第二个字段username的值 //打印出所有的用户的信息 out.println("用户ID:"+userid+"用户名:"+username+"<br/>"); } }catch(SQLExceptione){ out.println("查询所有用户信息失败"); } %> </body> </html>
获得指定起始位置和条数的记录
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%> <%@pageimport="java.sql.*"%> <!DOCTYPEhtml> <html> <head> <title>获得第二条记录开始的三条记录</title> </head> <body> <% Stringurl="jdbc:mysql://localhost:3306/javaweb";//连接数据库的url地址 Stringuser="root";//登录数据库的用户名 Stringpassword="zhangda890126;;";//登录数据库的用户名的密码 Connectionconn=null; try{ Class.forName("com.mysql.jdbc.Driver");//加载JDBC驱动程序 conn=DriverManager.getConnection(url,user,password);//链接数据库 }catch(ClassNotFoundExceptione){ out.println("找不到驱动类");//抛出异常时,提示信息 }catch(SQLExceptione){ out.println("链接MySQL数据库失败");//处理SQLException异常 } try{ Statementstmt=conn.createStatement();//创建语句对象Statement StringqueryAll="SELECT*FROMuserlimit1,3";//查询所有的用户 ResultSetrs=stmt.executeQuery(queryAll); while(rs.next()){ intuserid=rs.getInt(1);//获取第一个字段userid的值 Stringusername=rs.getString(2);//获取第二个字段username的值 Stringuserpassword=rs.getString(2);//获取第三个字段的password的值 //打印出所有的用户的信息 out.println("用户ID:"+userid+"用户名:"+username+"用户密码:"+userpassword+"<br/>"); } }catch(SQLExceptione){ out.println("查询所有用户信息失败"); } %> </body> </html>
遍历ResultSet中的数据并转化为表格
在网上找了很久遍历ResultSet中的数据并将其依次填充到一个网页表格中,有说将ResultSet数据转化到一个二维数组中,再依次输出,但二位数组需要提前指定存储大小,不方便扩增。其实用如下方法即可:
while(rs.next()){ out.println("<tr><td>"+rs.getString(1)+"</td><td>"+rs.getString(2)+"</td><td>"+rs.getString(3)+"</td><td>" +rs.getString(4)+"</td><td>"+rs.getString(5)+"</td><td>"+rs.getString(6)+"</td><td>" +rs.getString(7)+"</td><td>"+rs.getString(8)+"</td><td>"+rs.getString(9)+"</td><td>" +rs.getString(10)+"</td><td>"+rs.getString(11)+"</td><td>"+rs.getString(12)+"</td><tr>"); }