您好我有问题..任何人都可以给我片段吗?我有显示JList项目的MySql表,所以我可以轻松添加项目,但无法从数据库中删除它?在按下删除项目的同时?
我经常搜索没有人需要做的事情......我想知道它有可能吗?
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","ubuntu123");
PreparedStatement stmt = null;
ResultSet rs = null;
String [] data;
data = new String[100];
int i=0;
DefaultListModel listmodel = (DefaultListModel) jList2.getModel();
int selectedIndex = jList2.getSelectedIndex();
if (selectedIndex != -1) {
listmodel.remove(selectedIndex);
String query = "delete from supplierinfo where companyname = ?";
stmt = (PreparedStatement) con.prepareStatement(query);
stmt.setInt(1, i);
stmt.execute();
con.close();
// i= i+1;
}
} catch(Exception e) {
System.out.println("3rd catch " +e);
}
}
答案 0 :(得分:1)
将元素从ListModel
中删除时,可以将元素保存在变量中。
之后,您可以获得有关此项目的所有重要信息,并在查询中使用它。
使用类似的东西:
YourObjectType obj = (YourObjectType) listmodel.remove(selectedIndex);
String query = "delete from supplierinfo where companyname = ?";
stmt = (PreparedStatement) con.prepareStatement(query);
stmt.setInt(1, obj.getCompanyName());
stmt.execute();
答案 1 :(得分:0)
将ListModel#getElementAt(int)
方法与当前选定的索引一起使用。
如果您确定您的模型只包含String实例,您可以直接将其转换为String,然后将i
替换为stmt.setInt(1, i);