Java 来自sql的FamilyTree
我正试图从数据库中用Java创建familytree程序,我有两个类: 节点-具有getter和setter等。 Main-连接到DB,并在控制台中打印树。 我有问题: -我只建立了我的树的一个层次,我不知道如何建立其他层次Java 来自sql的FamilyTree,java,sql,ms-access,Java,Sql,Ms Access,我正试图从数据库中用Java创建familytree程序,我有两个类: 节点-具有getter和setter等。 Main-连接到DB,并在控制台中打印树。 我有问题: -我只建立了我的树的一个层次,我不知道如何建立其他层次 name | father -------+-------- moh | adam Ali | moh ammar | moh maraw | moh sabi | ammar Classe节点: public class Node {
name | father
-------+--------
moh | adam
Ali | moh
ammar | moh
maraw | moh
sabi | ammar
Classe节点:
public class Node {
private String data;
private Node parent;
private List<Node> children;
嘿,请检查下面的代码
public void CreateTree()
{
root = new Node("adam");
AddChilds(root);
}
public void AddChilds(Node tree)
{
String SQL="select name from BB where father='"+root.getData()+"' ;
ResultSet rs = statement.executeQuery(SQL);
while(rs.next())
{
Node child= new Node(rs.getString("name"));
child.parent = tree;
tree.addChild(child);//tree.children.Add(child);
}
tree.children.ForEach(X => { AddChilds(X); });
}
是否需要使用关系数据库?这对于NoSQL数据库(即GraphDB,也可以表示树)来说是一项很好的工作。如果你需要使用关系数据库,你应该搜索如何表示分层数据。我正在使用access…你可以像examplethanck一样给出代码或sql请求吗?但是只打印根(“adam”)谢谢你…你的代码工作得很好..我更改了打印方法和sql中的一些错误。tree.getData()请不要将值连接到SQL字符串中。使用
PreparedStatement
root = new Node("adam");
String SQL="select name from BB where father='"+root.getData()+"' ;
ResultSet rs = statement.executeQuery(SQL);
while(rs.next())
{
child= new Node(rs.getString("name"));
root.addChild(child);
}
Node.print(root);
public void CreateTree()
{
root = new Node("adam");
AddChilds(root);
}
public void AddChilds(Node tree)
{
String SQL="select name from BB where father='"+root.getData()+"' ;
ResultSet rs = statement.executeQuery(SQL);
while(rs.next())
{
Node child= new Node(rs.getString("name"));
child.parent = tree;
tree.addChild(child);//tree.children.Add(child);
}
tree.children.ForEach(X => { AddChilds(X); });
}