解决方案 »
- Spring MVC太弱鸟:(
- struts1用链接链接到一个action后配置文件的path怎么填?
- 调用spring注入的bean的次数限制--高手进,在线等
- Apache Http Server 配置问题
- 现在jsp做页面一般用什么工具
- 请教各位:如何让下拉列表框初始时默认选择指定的值?
- jsp 连接 SQLserver 2000 一般大公司用什么方法? ODBC吗?
- 请问各位大侠:如何在页面中设置,使当不能显示APPLET时候,自动让用户去我们自己的tomcat服务器(局域网内)而不要从sun站点上下载JAVA
- 谁能给个 Borland AppServer ?
- java 网络用控件问题
- IE中页面自动跳转的一点问题,i--不是减1吗?
- 登陆页面的校验码如何用javascript来判断
或者,你的SQL写错了
Connection conn = null;
PreparedStatement pstmt = null;
String sql = "select * from user where id = ?";
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");......
conn = DriverManager........;
pstmt = conn......(sql);
pstmt.setInt(1, id);
rs = pstmt.executeQuery();
while(rs.next) {
User user = new User();
user.setId(rs.getInt("id"));
user.setString(rs.getString("name"));
user.setInt(rs.getInt("pid"));
users.add(user);
if(haveChild(rs.getInt("id")) {
findAll(users, rs.getInt("id"));
}
}
}
}
private boolean haveChild(int id) {
"select count(*) from user where pid = " + id;
if(查到结果)返回true;
else 返回false;
}
方法封装的不太好,如果好一点可以再加一个方法,一共三个方法,一个做递归,一个做结果返回,一个做是否有子记录的判断。
ResultSet result = stmt.executeQuery("select * from "+table+" where parentid="+pid);
while(result.next()){
id=result.getInt("id");
name=result.getString("name");
li += name+"\r\n";
li += Show(table,id); //递归
}
return li;
}
这是我的递归程序 麻烦大家看看是那出问题了开始发的没有显示 不知道怎么回事...
所以就会选择出来无数次的第一条记录
可以改写一下
.....class XXX{
private static ResultSet result = null;public XXX(){
result = stmt.executeQuery("select * from "+table+" where parentid="+pid);
}public Show(table,id){
ResultSet result = stmt.executeQuery("select * from "+table+" where parentid="+pid);while(result.next()){
id=result.getInt("id");
name=result.getString("name");
li += name+"\r\n";
li += Show(table,id); //递归
}
return li;
}