您的位置:首页 > 编程语言 > Java开发

java生成xml格式数据

2009-12-01 20:17 337 查看
//获取数据库数据返回list

public List queryAll(int fcateId) {
List list = new ArrayList();
String sql = "select * from g_Account where fCateID=?  order by fCode";
Connection con = SqlHelp.getConn();//获得连接,sqlhelp自己写的工具类
PreparedStatement pst = null;
ResultSet rs = null;
try {
pst = con.prepareStatement(sql);
pst.setInt(1, fcateId);
rs = pst.executeQuery();
while (rs.next()) {
GAccount ga=new GAccount();
ga.setFCode(rs.getString("fCode"));
ga.setFName(rs.getString("fName"));
ga.setFCateID(rs.getInt("fCateID"));
ga.setFLevel(rs.getInt("fLevel"));
ga.setFParent(rs.getString("fParent"));
ga.setFIsDetail(rs.getInt("fIsDetail"));
list.add(ga);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
SqlHelp.colseConn(con, pst, rs);
}
return list;
}


//此方法是关键(获取tree结构)

public String getTree(int fcateId){
StringBuffer sb=new StringBuffer();
List gas=this.queryAll(fcateId);
String fparent="";
String fcode="";
int flevel=0;

//sb.append("<node>/r");
for (Iterator iterator = gas.iterator(); iterator.hasNext();) {
GAccount ga = (GAccount) iterator.next();

if (!ga.getFParent().equals(fparent)) {

if (!ga.getFParent().equals(fcode)) {
sb.append("/r"+getT("/t",ga.getFLevel())+"</node>/r");
for (int i = 1; i < flevel - ga.getFLevel(); i++) {
sb.append("/r/t</node>/r");
}
}

}

if(ga.getFLevel()==1){
sb.append("<node label=/"");
sb.append(ga.getFCode()+"-"+ga.getFName());
sb.append("/" id=/""+ga.getFCode()+"/">/r");

if(ga.getFIsDetail()==1){
sb.append("</node>/r");
}
}else{
if(ga.getFIsDetail()==1){
sb.append(""+getT("/t", ga.getFLevel())+"<node label=/"");
sb.append(ga.getFCode()+"-"+ga.getFName());
sb.append("/" id=/""+ga.getFCode()+"/"></node>/r");
}else{
sb.append(""+getT("/t", ga.getFLevel())+"<node label=/"");
sb.append(ga.getFCode()+"-"+ga.getFName());
sb.append("/" id=/""+ga.getFCode()+"/">/r");
}

}

fparent=ga.getFParent();
fcode=ga.getFCode();
flevel=ga.getFLevel();
}
sb.append("</node>");
return sb.toString();
}

private  String getT(String str,int count){
String s="";
for (int i = 0; i < count; i++) {
s=s+str;
}
return s;
}


//测试main方法

public static void main(String[] args) {
  GAccountDAO gd=new GAccountDAO();

  String a = gd.getTree(1);
  System.out.println(a);
 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java xml string iterator list sql