收录日期:2019/05/22 09:13:08 时间:2016/07/04 20:01:58 标签:Web 开发
showtree.jsp
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<%@ page import="java.sql.*"%>
<%!String str = "";

private void tree(Connection conn, int id, int level) {
Statement stmt = null;
ResultSet rs = null;
String prestr = "";
for (int i = 0; i < level; i++) {
prestr += "----";
}
try {
stmt = conn.createStatement();
String sql = "select * from article where pid" + id;
rs = stmt.executeQuery(sql);
while (rs.next()) {
str += "<tr><td>" + rs.getInt("id") + "</td><td>"
+ prestr + rs.getString("cont") + "</td></tr>";
if(rs.getInt("isleaf") != 0) {
tree(conn, rs.getInt("id"), level+1);
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}%>

<%
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/bbs?user=root&password=root";
Connection conn = DriverManager.getConnection(url);

Statement stmt = conn.createStatement();
ResultSet rs = stmt
.executeQuery("Select * from article where pid = 0");
while (rs.next()) {
str += "<tr><td>" + rs.getInt("id") + "</td><td>"
+ rs.getString("cont") + "</td></tr>";
if (rs.getInt("isleaf") != 0) {
tree(conn, rs.getInt("id"), 1);
}
}
rs.close();
stmt.close();
conn.close();
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
<table border="1">
<%= str %>
</table>
</body>
</html>
以下是数据库脚本
bbs.sql
create database bbs;

use bbs;

create table article 
(
id int primary key auto_increment,
pid int,
rootid int,
title varchar(255),
cont text,
pdate datetime,
isleaf int 
);

insert into article values (null, 0, 1, '蚂蚁大战大象', '蚂蚁大战大象', now(), 1);
insert into article values (null, 1, 1, '大象被打趴下了', '大象被打趴下了',now(), 1);
insert into article values (null, 2, 1, '蚂蚁也不好过','蚂蚁也不好过', now(), 0);
insert into article values (null, 2, 1, '瞎说', '瞎说', now(), 1);
insert into article values (null, 4, 1, '没有瞎说', '没有瞎说', now(), 0);
insert into article values (null, 1, 1, '怎么可能', '怎么可能', now(), 1);
insert into article values (null, 6, 1, '怎么没有可能', '怎么没有可能', now(), 0);
insert into article values (null, 6, 1, '可能性是很大的', '可能性是很大的', now(), 0);
insert into article values (null, 2, 1, '大象进医院了', '大象进医院了', now(), 1);
insert into article values (null, 9, 1, '护士是蚂蚁', '护士是蚂蚁', now(), 0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我的问题是:要把BBS中的帖子内容按照树状输出,但是总是只能输出一条记录,查了2个小时了,还是这样,编译器也没有报错,请大家给我看看,我快崩溃了,先谢谢大家了
String sql = "select * from article where pid" + id; 
你的第1个SQL不觉得有问题?运行能不抛异常??

Select * from article where pid = 0
第2个SQL限定了pid=0 ,你表中的数据pid=0的也只有1条,当然也只能查出1条了:
insert into article values (null, 0, 1, '蚂蚁大战大象', '蚂蚁大战大象', now(), 1); 

你再查查吧
问题找到了,可是String sql = "select * from article where pid" + id;也没有编译错误提示和异常抛出啊!
String sql = "select * from article where pid" + id;'
本来就是字符串啊
有什么疑问啊?
楼主可能用的是tomcat ^-^
引用 2 楼 ratzip 的回复:
问题找到了,可是String sql = "select * from article where pid" + id;也没有编译错误提示和异常抛出啊! 




String sql="这是一个假的SQL语句"



你看这个会不会有编译错误?
你把sql改成 String sql="select * from article where pid="+id;
String sql="select * from article where pid="+id;
刚才那个问题解决了,现在我修改了页面如下:
showtree.jsp
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<%@ page import="java.sql.*"%>
<%!String str = "";

private void tree(Connection conn, int id, int level) {
Statement stmt = null;
ResultSet rs = null;
String prestr = "";
for (int i = 0; i < level; i++) {
prestr += "----";
}
try {
stmt = conn.createStatement();
String sql = "select * from article where pid =" + id;
rs = stmt.executeQuery(sql);
while (rs.next()) {
str += "<tr><td>" + rs.getInt("id") + "</td><td>" + prestr
+ "<a href = 'showdetail.jsp?id=" + rs.getInt("id") + "'>" + rs.getString("title") + "</a>" + "</td></tr>";
if (rs.getInt("isleaf") != 0) {
tree(conn, rs.getInt("id"), level + 1);
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}%>

<%
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/bbs?user=root&password=root";
Connection conn = DriverManager.getConnection(url);

Statement stmt = conn.createStatement();
ResultSet rs = stmt
.executeQuery("Select * from article where pid = 0");
while (rs.next()) {
str += "<tr><td>" + rs.getInt("id") + "</td><td>"
+ "<a href = 'showdetile.jsp?id=" + rs.getInt("id") + "'>" + rs.getString("title") + "</a>" + "</td></tr>";
if (rs.getInt("isleaf") != 0) {
tree(conn, rs.getInt("id"), 1);
}
}
rs.close();
stmt.close();
conn.close();
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
<table border="1">
<%=str%>
</table>
</body>
</html>
~~~~~~~~~~~~~~~~~~~~~~~~~~~
我的问题是:现在我每在浏览器里刷新一次页面,它就会重新读取一次数据库,会接着上一次已经读取出来的10条记录后面重复显示,也就变成了20条记录,再刷新一次,又重复显示10条,我用得是TOMCAT和lomboz eclipse,请问这个问题怎么解决?谢谢大家了!
LZ很大意  String sql = "select * from article where pid=" + id; 少个=号 应该是这的问题吧

submit(); 想知道有几种方法导入数据? 1:数据库 2:WORD 3:EXCEL? 都是怎样导入?本人的数据库是SQL Server 2000 如何写程序将AVI, Mpeg, VCD, SVCD, DVD, DivX, ASF, WMV,RMVB转换成mpeg4阿! DropDownList中如何在第一行插入新项(在线等) 急!急!急!急!急!急!急!急!急!急!急!急!急需 英文版 的 VS.net2003 !!!各位大狭帮帮忙! C#中如何调用带参数的javascript函数? 一个麻烦的问题 请问网络CDN加速原理是什么?我的网站要搞一个!谢谢,怎么搞啊??? 我想制作类似C/S结构的那种最上面的TOOLBAR 关机前要做的事情 两个一直困扰我的问题,高手请进 :-) 在线等待````` 杨振宁眼中的鲁迅 请问怎么将水晶报表的x轴的标签显示成汉字? 初级问题 关于引用 数据库连接的问题,大家快过来帮帮忙! 哪位高人能够解释一下setjmp/longjmp? 在一个线程中是否还可以再开一个线程 在一个表中,怎么把横的结构,查询成竖的值出来?急!急!急!在线等 你们遇到这样问题吗? 网络管理软件 假设在机器Tserver上有db01,db02,..等库,这些库具有相同结构。如何将其中某个库的某些记录复制到另外一个库中? 循环出不了我要的结果,看代码错那里了? 求一个javascript写的菜单 马上结单! 请问有关数据库三层架构的问题 有个广州的VC项目,谁有兴趣?? (50分)怎样修改disabled textbox的前景色?谢谢! 郁闷,csdn的blog总是出问题,散分 有个广州的VC项目,谁有兴趣?? 急 关于JS方面的问题 牛阿牛的brew开发文章下载,适合对手机开发感兴趣的朋友。