JSP提取数据库记录

来源:百度知道 编辑:UC知道 时间:2024/06/07 16:40:49
ublic ArrayList<Journal> journal(){ //获取最近发表的日志
DBLink db=new DBLink();
Connection con=null;
Statement st=null;

ResultSet rt=null;
con=db.getConneciton();
ArrayList<Journal> list=new ArrayList<Journal>();
try
{
st=con.createStatement();
rt=st.executeQuery("select * from journal order by id desc");

for(int i=0;i<3;i++)
{
Journal js=new Journal();
if(rt.next())
{
js.setTheme(rt.getString(4));
list.add(js);

}
break;

}

if(list.isEmpty())
{
return null;
}
return list;

} catch (Exception e) {

e.printStackTrace();
}
finally
{
db.close();
}
return null;
我这里想读三条数据 可是为什么只能读到一条

该怎么解决 给代码 谢谢各位了!

如果只读三条数据的话,SQL应该这样写:
select top 3 * from journal order by id desc
再直接用next()就行了。
全部取出来再拿前面三个效率上低了。

for循环里的那个break去掉应该就可以了,这样只能读取第一条信息.建议用2楼的做法,只读取前面3条记录,然后用while
while(rs.next){
js.setTheme(rt.getString(4));
list.add(js);
}

兄弟! if 改成while 就对了! 不要那个for循环了! 用一个计数器!

select * from journal order by id desc limit 1,3;就行了,意思就是获取第一条记录后的3条记录。。然后把你的for循环去了,直接用while(rs。next())。。

代码看起来是对的。