我一直在尝试从mysql中检索数据 list
这很好,但问题是我不能选择 name
的 list
.. 我要选择 name
(不是索引或值)以便我可以完成where子句
这是我的密码:-
private void proceed(){
PreparedStatement stmt = null;
Connection conn = null;
ResultSet rs=null;
String i = jList1.getSelectedValue();
try {
Class.forName("java.sql.DriverManager");
conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/hotel","root","root");
stmt = conn.prepareStatement("select * from hotelbookings where GuestName = '"+i+"'");
rs = stmt.executeQuery();
if (rs.next()){
String BN = rs.getString("BookNo");
String GN = rs.getString("GuestName");
String AD = rs.getString("Address");
String NOD = rs.getString("No_of_Days");
String PN = rs.getString("PhoneNo");
String ID = rs.getString("ID_Proof");
String CN = rs.getString("Country");
String ARD = rs.getString("Arival_Date");
String DRD = rs.getString("Departure_Date");
NewJFrame1_1 second = new NewJFrame1_1(BN,GN,AD,NOD,PN,ID,CN,ARD,DRD);
second.setVisible(true);
}
} catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
这是我的列表的图像..显示列表从mysql检索数据..继续按钮用于获取所选名称进行修改
这是节目单的代码button:-
private void fillList(){
PreparedStatement stmt = null;
Connection conn = null;
try {
Class.forName("java.sql.DriverManager");
conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/hotel","root","root");
stmt = conn.prepareStatement("select GuestName from hotelbookings");
stmt.executeQuery();
ResultSet rs = stmt.getResultSet();
int i =0;
DefaultListModel info = new DefaultListModel();
while (rs.next()){
String[] data = new String[100];
data[i] = rs.getString("GuestName");
jList1.setModel(info);
info.addElement(data[i]);
i = i + 1;
jList1 = new JList(info);
}
}
catch(Exception e){
JOptionPane.showMessageDialog (this, e.getMessage());
}
}
填充列表class:-
私有void jbutton2actionperformed(java.awt.event.actionevent evt){
fillList();
}
2条答案
按热度按时间l7wslrjt1#
嗯,最基本的问题是
fillList
据我所知,从你张贴的代码是while循环。你创建了一个新的JList
每个循环。这将使无效(或我应该说肮脏)的jList1
你的参考资料proceed
方法。您不应该创建新的JList
每一次。只需为每个循环保留相同的列表。甚至不要在循环外改变它。保持不变,每次都更新模型。要更新模型,至少有以下两个选项:
每次创建一个新模型,更新它(即添加你想要的所有元素)并调用
jList1.setModel(your_created_model)
.设置模型
JList
至DefaultListModel
一次(以施工时间为例),然后每次fillList
方法调用:从列表本身获取模型(通过
getModel()
). 你知道这是一个DefaultListModel
所以你可以放心地把它扔到一个。从模型中删除所有元素(vis)
removeAllElements()
).从中添加所有新元素
ResultSet
到模型。以以下代码为例:
它使用第二个选项(每次重新填充模型)。
pgccezyw2#