在Java JTree上显示数据库中的数据

在Java JTree上显示数据库中的数据,java,swing,jtree,Java,Swing,Jtree,我有一个数据库,其中有两列名为 collende,collaf 当我从数据库中读取数据并将其显示在JTree上时 while (resultSet.next()) { DefaultMutableTreeNode url = new DefaultMutableTreeNode(resultSet.getString("colNode")); mutableTreeNode.add(url); url.add(new Def

我有一个数据库,其中有两列名为 collende,collaf

当我从数据库中读取数据并将其显示在JTree上时

while (resultSet.next()) {
            DefaultMutableTreeNode url = new DefaultMutableTreeNode(resultSet.getString("colNode"));
            mutableTreeNode.add(url);
            url.add(new DefaultMutableTreeNode(resultSet.getString("colLeaf")));
        }
我希望如果JTree colNode上已经存在该值,那么collaf将被追加到 请帮帮我

电流输出:

期望输出:


我想你的意思是,你想用相同的
colNode将所有
collaf
分组

首先,我要做两件事中的一件,使用SQL对结果进行分组和/或按
colNode
对结果进行排序,这样您就可以监视当前的“组”,当它发生变化时,创建一个新的
TreeNode

类似于

DefaultMutableTreeNode rootNode = ...;
DefaultMutableTreeNode groupNode = null;
String currentGroup = null;
while (resultSet.next()) {
    String group = resultSet.getString("colNode");
    if (currentGroup == null || !currentGroup.equals(group)) {
        currentGroup = group;
        group = new DefaultMutableTreeNode(group);
        rootNode.add(groupNode);
    }
    group.add(new DefaultMutableTreeNode(resultSet.getString("colLeaf")));
}
比如说

或者,使用某种
映射
,映射同一键(
collaf
)下的所有
colNode

Map-mapGroups=newhashmap(25);
while(resultSet.next()){
字符串组=resultSet.getString(“colNode”);
List members=mapGroups.get(组);
如果(成员==null){
成员=新阵列列表(25);
mapGroups.put(组,成员);
}
add(resultSet.getString(“colLeaf”);
}
然后使用
mapGroups
根据键/值组生成
TreeNode
s

比如说


就我个人而言,我认为第一个选项更有效,但可能需要更复杂的查询,第二个选项更慢,需要更多的开销,但数据建模的方式与您试图实现的方式类似,是否要使用相同的
colNode
对所有
collaf
进行分组

首先,我要做两件事中的一件,使用SQL对结果进行分组和/或按
colNode
对结果进行排序,这样您就可以监视当前的“组”,当它发生变化时,创建一个新的
TreeNode

类似于

DefaultMutableTreeNode rootNode = ...;
DefaultMutableTreeNode groupNode = null;
String currentGroup = null;
while (resultSet.next()) {
    String group = resultSet.getString("colNode");
    if (currentGroup == null || !currentGroup.equals(group)) {
        currentGroup = group;
        group = new DefaultMutableTreeNode(group);
        rootNode.add(groupNode);
    }
    group.add(new DefaultMutableTreeNode(resultSet.getString("colLeaf")));
}
比如说

或者,使用某种
映射
,映射同一键(
collaf
)下的所有
colNode

Map-mapGroups=newhashmap(25);
while(resultSet.next()){
字符串组=resultSet.getString(“colNode”);
List members=mapGroups.get(组);
如果(成员==null){
成员=新阵列列表(25);
mapGroups.put(组,成员);
}
add(resultSet.getString(“colLeaf”);
}
然后使用
mapGroups
根据键/值组生成
TreeNode
s

比如说


就我个人而言,我认为第一个选项更有效,但可能需要更复杂的查询,第二个选项更慢,需要更多的开销,但数据建模的方式与您试图实现的方式类似

是的,我希望如果JTree colNode上已经存在该值,那么collaf将附加到。请帮助我是的,我希望如果JTree colNode上已经存在该值,那么collaf将附加到。请帮帮我