如何使用数据库中的项目填充选择框
Posted
技术标签:
【中文标题】如何使用数据库中的项目填充选择框【英文标题】:How to populate a ChoiceBox with items from a database 【发布时间】:2014-05-11 09:09:58 【问题描述】:我正在尝试通过 Hibernate 使用 H2 数据库中的项目(国家/地区)填充 ChoiceBox,但 ChoiceBox 仅填充了一些没有意义的奇怪项目,而不是实际的国家名称;像这样:
project.Forms.AddNew.DB.ItemsPOJO@5aa434
如何从数据库中获取实际的国家名称,而不是上面的值?
类如下所示:
POJO 类:
@Entity(name = "InitialDBItems")
public class InitialDBItemsPOJO implements Serializable
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int countriesListID;
private String countriesList;
public String getCountriesList()
return countriesList;
public void setCountriesList(String countriesList)
this.countriesList = countriesList;
public int getCountriesListID()
return countriesListID;
public void setCountriesListID(int countriesListID)
this.countriesListID = countriesListID;
持久化到数据库中的国家数组:
public class InitialDBItems
static InitialDBItemsPOJO initialDBItemsPOJO = new InitialDBItemsPOJO();
public static void persistCountries()
String[] countriesList =
"Afghanistan",
"Albania",
"Algeria",
// More countries
;
for (String c : countriesList)
initialDBItemsPOJO.setCountriesList(c);
new ManageItems().addItems(initialDBItemsPOJO);
System.out.println(c);
我如何从数据库中获取国家/地区:
public static ObservableList<InitialDBItemsPOJO> retrieveCountriesList()
ObservableList<InitialDBItemsPOJO> data;
List countriesListListItems;
String countriesListListItemsQuery = "from InitialDBItems";
data = FXCollections.observableArrayList();
countriesListListItems = new ManageItems().listItems(countriesListListItemsQuery);
for (Iterator iterator = countriesListListItems.iterator(); iterator.hasNext();)
InitialDBItemsPOJO countriesListListItemsIt = (InitialDBItemsPOJO) iterator.next();
data.add(countriesListListItemsIt);
return data;
希望您能提供帮助。提前谢谢大家。
【问题讨论】:
【参考方案1】:project.Forms.AddNew.DB.ItemsPOJO@5aa434
是您的实体InitialDBItemsPOJO
的默认toString();
的值,一个简单的解决方法是覆盖它
@Entity(name = "InitialDBItems")
公共类 InitialDBItemsPOJO 实现可序列化
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int countriesListID;
private String countriesList;
public String getCountriesList()
return countriesList;
public void setCountriesList(String countriesList)
this.countriesList = countriesList;
public int getCountriesListID()
return countriesListID;
public void setCountriesListID(int countriesListID)
this.countriesListID = countriesListID;
public String toString()
return countriesList;
或
public static ObservableList retrieveCountriesList()
ObservableList数据; 列出国家ListListItems; String countryListListItemsQuery = "来自 InitialDBItems"; 数据 = FXCollections.observableArrayList(); countryListListItems = new ManageItems().listItems(countriesListListItemsQuery); for (Iterator iterator = countriesListListItems.iterator(); iterator.hasNext();) InitialDBItemsPOJO countriesListListItemsIt = (InitialDBItemsPOJO) iterator.next(); data.add(countriesListListItemsIt.getCountriesList()); 返回数据;
【讨论】:
非常感谢@Rafik Beldi 的回复。让我试试。这很有帮助 再次感谢@Rafik Beldi。你的解决方案就像一个魅力。以上是关于如何使用数据库中的项目填充选择框的主要内容,如果未能解决你的问题,请参考以下文章
如何在Visual Basic 2012中使用mdb数据库中的数据填充列表框?
Laravel-5 如何使用 id 值和名称值从数据库中填充选择框