您的位置:程序门 -> java -> j2se / 基础类



jsp/javabean 如何循环读取数据库数据?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


jsp/javabean 如何循环读取数据库数据?
发表于:2008-01-15 10:35:12 楼主
小弟刚学到jsp和javabean这里,下面的程序也能运行,可只能读到一条数据,不知道用什么方法可以循环读取到更多的数据,希望大侠们帮帮我,谢谢

java code
package test; //处理数据库的bean import java.sql.*; public class usersql { public static userinfo usersql() { userinfo ui = new userinfo(); try { connection conn; class.forname("sun.jdbc.odbc.jdbcodbcdriver"); conn=drivermanager.getconnection("jdbc:odbc:driver={sql server};server=127.0.0.1;uid=sa;pwd=123456;database=testjsp"); string sql="select * from userinfo"; statement st=conn.createstatement(); resultset rs=st.EXECutequery(sql); while (rs.next()) { ui.setusername(rs.getstring("username")); ui.setpassword(rs.getstring("password")); } } catch(exception e){ system.out.println(e.tostring()); } return ui; } }

java code
package test; //赋值bean public class userinfo { string username = null; string password = null; public userinfo() { } public void setusername(string username) { this.username=username; } public void setpassword(string password) { this.password=password; } public string getusername() { return username; } public string getpassword() { return password; } public void init() { userinfo ui = usersql.usersql(); this.username = ui.username; this.password = ui.password; } }


html code
<%@page import="test.userinfo"%> <% userinfo userinfo = new userinfo();%> <html> <title>test</title> <%userinfo.init();%> <body> <div>&nbsp;<%=userinfo.getusername()%></div> <div>&nbsp;<%=userinfo.getpassword()%></div> </body> </html>
发表于:2008-01-15 10:39:401楼 得分:0
你的查询把以前的结果全都覆盖了....
while   (rs.next())
                        {
                                ui.setusername(rs.getstring("username"));
                                ui.setpassword(rs.getstring("password"));
                        }
都在ui上进行set,当然只有一个结果.应该用集合(数组或list)来保存多个ui实例


最后也只打印了一个结果而已:
<body>
<div> &nbsp; <%=userinfo.getusername()%> </div>
<div> &nbsp; <%=userinfo.getpassword()%> </div>
</body>
用循环
发表于:2008-01-15 10:42:302楼 得分:0
小弟菜鸟,请说明白点点,我也想到用数组,可不知道怎么下手,试了很多次都错误,呵呵
发表于:2008-01-15 11:25:053楼 得分:0
while   (rs.next())
                        {
                                ui.setusername(rs.getstring("username"));
                                ui.setpassword(rs.getstring("password"));
                        }
你这样ui里只保存了一条记录阿
你应该把你每查询出来的一条记录保存到list中就可以了
你可以这样做:
list <userinfo>   list=new   arraylist <userinfo> ();
userinfo   ui   =   new   userinfo();
while   (rs.next())
                        {
                                ui.setusername(rs.getstring("username"));
                                ui.setpassword(rs.getstring("password"));
                                list.add(ui);
                        }
最后在你的页面把这个list循环显示出来就可以了
发表于:2008-01-15 16:07:414楼 得分:0
如果你是从事web开发,一定要搞清楚什么是服务器端,什么是客户端.什么事情发生在服务器端,什么事情应该在客户端做
发表于:2008-01-16 02:52:315楼 得分:0
循环取值
发表于:2008-01-16 04:54:486楼 得分:0
java code
public static void showlist() { list<userinfo> list = usersql(); for (userinfo ui : list) { system.out.println("username=" + ui.getusername() + ",password=" + ui.getpassword()); } } public static list<userinfo> usersql() { // 这里返回用户信息的列表 try { connection conn; class.forname("sun.jdbc.odbc.jdbcodbcdriver"); conn = drivermanager.getconnection("jdbc:odbc:driver={sql server};server=127.0.0.1;uid=sa;pwd=123456;database=testjsp"); string sql = "select * from userinfo"; statement st = conn.createstatement(); resultset rs = st.EXECutequery(sql); userinfo ui = null; list<userinfo> list = new arraylist<userinfo>(); while (rs.next()) { ui = new userinfo(); // 在这里每次构造一个新的对象 ui.setusername(rs.getstring("username")); ui.setpassword(rs.getstring("password")); list.add(ui); // 保存到列表中 } } catch (exception e) { system.out.println(e.tostring()); } return list; }
发表于:2008-01-16 04:57:067楼 得分:0
java code
<%@page import="test.userinfo"%> <html> <title>test</title> <body> <% list<userinfo> list = usersql.usersql(); for(userinfo userinfo : list){ %> <div>&nbsp;<%=userinfo.getusername()%></div> <div>&nbsp;<%=userinfo.getpassword()%></div> <% } %> </body> </html>


快速检索

最新资讯
热门点击