我试图用数据库条目的数据预加载GUI。基本上在以前的JForm中我已经要求用户输入一个名称,这个类接受这个名称并用数据库条目填充现有的文本字段和区域,虽然它似乎不工作,因为它不预加载任何现有的字段,虽然它确实存在于数据库中。如果任何人可以帮助它将不胜感激,因为这是由于很快!
public void presetPage(){
modifyRecipe m = new modifyRecipe();
String name = m.getSR();
try{
String url = "jdbc:derby://localhost:1527/Cookbook";
Connection conn = DriverManager.getConnection(url);
String sql = "SELECT * from RECIPES where name=?";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, name);
ResultSet rs = pst.executeQuery();
boolean found = false;
while(rs.next()){
if(rs.getString(1).equalsIgnoreCase(name)){
JOptionPane.showMessageDialog(null, "Found " + name );
found = true;
txtName.setText(rs.getString(1));
txtSubcatagory.setText(rs.getString(2));
cmbCatagory.getSelectedItem().toString();
txtIngredients.setText(rs.getString(4));
txtInstructions.setText(rs.getString(5));
txtMod.setText(rs.getString(6));
}else if(!found){
JOptionPane.showMessageDialog(null, "Item Not Found!");
this.dispose();
}
}
1条答案
按热度按时间ccrfmcuu1#
连接到
database
:使用
JDBC
驱动程序连接到数据库,如下所示:准备
SELECT
查询:编写一个
SELECT
查询,从database
获取数据。使用PreparedStatement
将参数绑定到查询:执行查询:
执行查询并获取
ResultSet
,同时检查它是否有任何数据:在GUI中加载数据:
使用来自
ResultSet
的数据加载GUI:GUI组件必须在
setText()
或setSelectedItem()
方法之前初始化。GUI必须初始化,否则数据将无法加载。
我们假设GUI组件已初始化,SQL查询返回一行。如果查询返回多行,则必须适当处理。