我在DB中有一些值如下 這裏的父節點是父節點,子節點是子節點。如何檢索數據庫值並將其存儲爲樹數據結構?
gid parent child clientid
1 ABC ABC 1
2 ABC PQR 1
3 PQR c1 1
4 PQR c2 1
5 PQR c3 1
6 ABC XYZ 1
7 XYZ EFG 1
8 EFG c4 1
9 EFG c5 1
這是一棵樹的數據,在這裏爲我的計算,如果父母和孩子是相同的,我把它作爲樹的根。
我做我自己的樹數據結構到所有值存儲爲,
public class Tree<T> {
private T head;
private ArrayList<Tree<T>> leafs = new ArrayList<Tree<T>>();
private Tree<T> parent = null;
private HashMap<T, Tree<T>> locate = new HashMap<T, Tree<T>>();
public Tree(T head) {
this.head = head;
locate.put(head, this);
}
}
我有添加節點到樹方法爲addleaf()
。 Tree
工作正常。問題是我必須從數據庫檢索數據並將其存儲在Tree
類型中。爲此,我已經這樣做了。
Tree<String> t=null;
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("select * from bus_serverdb.groupdet where client_id='"+ uid + "'");
while (rs.next()) {
String parent = rs.getString("parent");
String child = rs.getString("child");
if(parent.equals(child)) {
t=new Tree<String>(parent);//creates new tree with parent as root node
}
}
所以,現在我在這裏停留,我沒有得到如何通過DB數據遍歷並將其添加到Tree
類型。任何人都可以幫助我。
你真的在DB中有'parent = ABC,child = ABC'嗎? – 2015-02-24 11:05:20
沒有行,這是DB中的第一行 – Raghu 2015-02-24 11:06:59
是的,對不起,我還沒有讀完。 「ABC」是樹的根。 – 2015-02-24 11:09:19