【问题标题】:JTree data not loading from the database (MySQL)JTree 数据未从数据库加载 (MySQL)
【发布时间】:2025-12-18 08:10:02
【问题描述】:

我正在 MySQL 数据库上创建类别表。我需要列出所有需要在JTree 上查看的类别,但它没有加载。到目前为止我在下面写的代码。

分类表

+------------+
|id | catname|
+------------+
|1  | book   |
|2  | drink  |
|3  | cake   |
+------------+
public void LoadtTree()
{
   try {
        pst = con.prepareStatement("select * from category");
        rs = pst.executeQuery();     
        DefaultMutableTreeNode categories = new DefaultMutableTreeNode("Categories");
        String currentGroup = null;
        while (rs.next()) {
               String group = rs.getString("catname");
               DefaultMutableTreeNode categorynames= new DefaultMutableTreeNode(rs.getString("catname"));
               categories.add(categorynames);         
        }
    }catch(Exception ex){ex.getMessage();}
}

加载表单时,它仅显示默认节点。如何将数据库值加载到此节点?

连接

 Connection con;
    PreparedStatement pst;
    ResultSet rs;


   public void Connect()
{

    try {
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost/emk", "root","");                     
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(fo.class.getName()).log(Level.SEVERE, null, ex);
    } catch (SQLException ex) {
        Logger.getLogger(fo.class.getName()).log(Level.SEVERE, null, ex);
    }
}

【问题讨论】:

  • 您发布的代码对我来说似乎没问题,但似乎 DefaultMutableTreeNode categories 从未添加到用户界面中。你能发布完整的控制器类代码吗?或者通过LoadTree()方法调试,查看是否添加了数据库中的类别。
  • 你能写代码吗先生。这不是 mvc 先生。只是核心java
  • 1) 将 }catch(Exception ex){ex.getMessage();} 更改为 }catch(Exception ex){ex.printStackTrace();}。这将有助于解决问题。如果不是现在,那么在未来。 2) 为了尽快获得更好的帮助,edit 添加minimal reproducible exampleShort, Self Contained, Correct Example。替换数据库的硬编码数据。

标签: java mysql swing jtree


【解决方案1】:

尝试使用 DefaultMutableTreeNode。

这不是我的代码,但请尝试查看此示例:http://www.javaknowledge.info/populate-jtree-from-mysql-database/

【讨论】:

  • 先生,如果您编写了完整的代码,请先生容易理解
  • “如果你写了完整的代码” SO不是代码生成机器。