在 Java JTree 上显示数据库中的数据
Displaying data from the database on Java JTree
我有一个数据库,其中有两列名为
colNode,colLeaf
当我从数据库读取数据并显示在JTree上时
while (resultSet.next()) {
DefaultMutableTreeNode url = new DefaultMutableTreeNode(resultSet.getString("colNode"));
mutableTreeNode.add(url);
url.add(new DefaultMutableTreeNode(resultSet.getString("colLeaf")));
}
我想如果该值已经存在于 JTree colNode 上,那么 colLeaf 将附加到 the.I 想要获得图 2 中的结果
请帮助我
当前输出:
期望的输出:
我假设你的意思是,你想将所有 colLeaf
与相同的 colNode
分组?
我会先做以下两件事之一,或者使用 SQL 分组 and/or 按 colNode
对结果进行排序,这样你就可以监控当前的 "group",当它改变时,创建一个新的 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")));
}
例如。
或者,使用某种 Map
,将所有 colNode
值映射到同一键下 (colLeaf
)
Map<String, List<String>> mapGroups = new HashMap<>(25);
while (resultSet.next()) {
String group = resultSet.getString("colNode");
List<String> members = mapGroups.get(group);
if (members == null) {
members = new ArrayList<>(25);
mapGroups.put(group, members);
}
members.add(resultSet.getString("colLeaf"));
}
然后您将使用 mapGroups
根据 key/value 组生成您的 TreeNode
。
例如。
就我个人而言,我认为第一个选项更有效,但可能需要更复杂的查询,第二个选项更慢并且需要更多开销,但是以类似于您尝试的方式对数据建模实现
我有一个数据库,其中有两列名为 colNode,colLeaf
当我从数据库读取数据并显示在JTree上时
while (resultSet.next()) {
DefaultMutableTreeNode url = new DefaultMutableTreeNode(resultSet.getString("colNode"));
mutableTreeNode.add(url);
url.add(new DefaultMutableTreeNode(resultSet.getString("colLeaf")));
}
我想如果该值已经存在于 JTree colNode 上,那么 colLeaf 将附加到 the.I 想要获得图 2 中的结果 请帮助我
当前输出:
期望的输出:
我假设你的意思是,你想将所有 colLeaf
与相同的 colNode
分组?
我会先做以下两件事之一,或者使用 SQL 分组 and/or 按 colNode
对结果进行排序,这样你就可以监控当前的 "group",当它改变时,创建一个新的 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")));
}
例如。
或者,使用某种 Map
,将所有 colNode
值映射到同一键下 (colLeaf
)
Map<String, List<String>> mapGroups = new HashMap<>(25);
while (resultSet.next()) {
String group = resultSet.getString("colNode");
List<String> members = mapGroups.get(group);
if (members == null) {
members = new ArrayList<>(25);
mapGroups.put(group, members);
}
members.add(resultSet.getString("colLeaf"));
}
然后您将使用 mapGroups
根据 key/value 组生成您的 TreeNode
。
例如。
就我个人而言,我认为第一个选项更有效,但可能需要更复杂的查询,第二个选项更慢并且需要更多开销,但是以类似于您尝试的方式对数据建模实现