求从mysql获取树状结构

最近在做一个项目 我们是把页面上菜单存放到数据库 所以在加载页面要去读取这个树状结构 求大神给点代码实例

1 使用代码进行递归
2 使用mysql sql语句,你可以参考http://web.archive.org/web/20110606032941/http://dev.mysql.com/tech-resources/articles/hierarchical-data.html

你需要的是在后台组装成树状的数据,一般用递归
比如返回xml:
[code="java"]
package com.zyn.iteye;

import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class XmlTest {
public class Menu{
private String id;
private String name;
private String url;
private String parentId;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}

}


public String getMenuXml(){
    Document document = DocumentHelper.createDocument();      
    String rootname = "menus";     
    Element root = document.addElement(rootname + "s");//添加根节点
    //假设根节点parentid为"0";
    addEle(root,"0");
    return document.asXML();
}

public void addEle(Element p,String pid){
    List<Menu> list = getMenuList(pid);

            for(Menu m:list){

                Element e = p.addElement("menu");
                e.setText(m.getName());
                e.setAttributeValue("url", m.getUrl());
                addEle(e,m.getId());
            }

}

public List<Menu> getMenuList(String parentId){
    List<Menu> list = new ArrayList<Menu> (); 
    String sql = "select * from menu where parentId='"+parentId+"'";
    return list;
}

}

[/code]

把数据表里的每一行读到后台,然后数据结构的方式建立一颗树。