Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向Eclipse组合添加数据库ID_Java_Mysql_Eclipse_Combobox - Fatal编程技术网

Java 向Eclipse组合添加数据库ID

Java 向Eclipse组合添加数据库ID,java,mysql,eclipse,combobox,Java,Mysql,Eclipse,Combobox,我正在Eclipse中开发一个Java应用程序,它从MySQL数据库中提取数据。我正在用数据填充一个组合框。到目前为止,我可以获得要显示的字段值,但我不知道如何存储数据库行的唯一ID值。我发现的一个建议是创建一个可以存储display值和id值的自定义类。但是,这似乎不适用于Eclipse小部件组合对象。这就是我所拥有的 import org.eclipse.swt.widgets.Combo; class myClass { public static void createCombo

我正在Eclipse中开发一个Java应用程序,它从MySQL数据库中提取数据。我正在用数据填充一个组合框。到目前为止,我可以获得要显示的字段值,但我不知道如何存储数据库行的唯一ID值。我发现的一个建议是创建一个可以存储display值和id值的自定义类。但是,这似乎不适用于Eclipse小部件组合对象。这就是我所拥有的

import org.eclipse.swt.widgets.Combo;

class myClass {
   public static void createCombo(ResultSet rs) {
      Combo c = new Combo();
      while(rs.next()) {
         int id = rs.getInt("id");
         int display = rs.getString("display");
         comboitem ci = new comboitem(id,display);
         c.add(ci);
      }
   }
}
class comboitem {
   private int _id;
   private String _display;

   public comboitem(int id, String display) {
     this._id = id;
     this._display = display;
   }
   public int getID(){
      return _id;
   }
   public String toString(){
     return _display;
    }
}

c.add(ci)中的上述错误。它需要的是字符串,而不是对象。有办法做到这一点吗?

不知道,但我一直觉得这是一个糟糕的举动。 创建comboitems的集合/列表,从comboitem.display填充小部件。 组合中的索引是集合中的索引。
这意味着您可以在没有UI或使用简单模拟的情况下对许多内容进行单元测试,并且它使您远离数据模型中特定于桌面的实现。

combo小部件显示一个字符串数组,因此,如果您想同时显示这两个值,只需将它们连接起来即可。从你的问题来看,我不确定你的最终目标是什么。如果要根据组合选择选择适当的组合项,则将组合项存储在映射中,并使用组合值作为键

另一种方法是使用jface ComboViewer,它允许您将输入设置为复杂对象,提供标签提供程序以及围绕Combo小部件的更复杂控件

您还应该查找一些有关java编码约定的信息,不要直接从UI访问数据库,除非这是一个非常简单的应用程序

您可以找到一些使用大多数SWT小部件的示例