数据库读取成xml格式(tree格式)
来源:互联网 发布:antlr解析源码 编辑:程序博客网 时间:2024/05/14 17:25
需要commons-collections-3.2.1.jar包
import org.apache.commons.collections.MultiHashMap;
import org.apache.commons.collections.MultiMap;
/**
* @return String
* @param MultiMap
* @param id
获得tree结构
*/
public static String getChild(MultiMap nodes,String id){
StringBuffer sb = new StringBuffer();
if(nodes.get(id) instanceof List){
List<MenuInfo> list = (List)nodes.get(id);
MenuInfo node = null;//VO实体类
for(int i=0;i<list.size();i++){
node = list.get(i);
sb.append(""+getT("/t", node.getLevel())+"<node id='"+node.getMenuCode()+"' label='"+node.getMenuName()+"'>/n");//组装成xml结构
if(nodes.get(node.getMenuCode()) instanceof List){
sb.append(getChild(nodes,node.getMenuCode()));
}else{
sb.append("</node>/n");
}
if(i==list.size()-1)
sb.append("</node>/n");
}
}
return sb.toString();
}
/**
* @return String
* @param null
* 获得tree结构
*/
public String getMenuTree(String roleId){
List list=this.queryAllMenu(roleId);//查询数据库返回集合
MultiMap nodes = new MultiHashMap(list.size());
MenuInfo node = null;
for(Iterator<MenuInfo> it = list.iterator();it.hasNext();){
node = (MenuInfo)it.next();
nodes.put(node.getMenuParent(), node);
}
StringBuffer sb = new StringBuffer("<node id='-1'>/n");
List<MenuInfo> lst1 = (List)nodes.get(0);
sb.append(getChild(nodes,"-1"));
return sb.toString();
}
/**
* @return List
* @param roleId(权限代码)
* 根据权限查询所有的菜单
*/
public List queryAllMenu(String roleId) {
String sql = "select m.* from U_MenuInfo m where m.MenuCode in(select r.menuId from U_RoleMenu r where r.roleId=?)";
Connection con = SqlHelp.getConn();//SqlHelp自己写的链接数据库类
PreparedStatement pst = null;
ResultSet rs = null;
List menus = new ArrayList();
try {
pst = con.prepareStatement(sql);
pst.setString(1, roleId);
rs = pst.executeQuery();
while (rs.next()) {
MenuInfo menu = getResult(rs);
menus.add(menu);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
SqlHelp.colseConn(con, pst, rs);
}
return menus;
}
/*生成结果如下*/
<node id="">
<node id="" label="">
<node id="" label="">
</node>
</node>
</node>
- 数据库读取成xml格式(tree格式)
- java 读取postgresql数据库结构生成XML格式
- 数据库生成xml格式
- flash读取XML格式数据
- 用Ajax读取XML格式的数据
- servlet读取xml格式的post数据
- python如何读取xml格式的文件
- PHP读取MySQL生成XML格式数据
- Ajax,读取服务器XML格式数据
- 通过XML格式,读取CSV文件
- 读取xml格式的天气预报的代码
- 用Ajax读取XML格式的数据
- C#读取MySql数据库并保存为xml与文本格式
- [VB.NET]vb.net如何读取数据库生成指定格式的xml文件
- 读取数据库字段值为xml格式的数据都页面
- JSON格式转换成XML格式
- 读取数据库Image格式图片并显示
- DELPHI 把数据库中的数据转换成XML格式
- 编码人员的误区
- 现在的样子(20100202)
- Win 95下内存映射文件的工作原理及使用方法
- symbian 源码站点
- gdb调试正在运行的进程
- 数据库读取成xml格式(tree格式)
- 对CURL的一些研究
- 程序物语(九):解读你的生存法则
- 赢在中国给80后的忠告
- 有功无功的经典解释
- 阿凡達觀後感
- 03服务器上IIS6.0显示asp.net选项卡
- PowerDesigner常用设置
- sudo的简单用法