【发布时间】:2019-12-03 19:08:10
【问题描述】:
我通过在 jtextField 中获取用户的输入创建了一个 JList。然后我通过将 JList 转换为 String 将 jList 保存到 Mysql 数据库,因为我想将 JList 项目保存在单行中作为单个条目。
将用户输入添加到 jList 的代码:
DefaultListModel dlm= new DefaultListModel();
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String userInput= jTextField2.getText();
dlm.addElement(userInput);
jList1.setModel(dlm);
jTextField2.setText(null);
}
用于将 JList 作为字符串保存到 MySQL 数据库中的代码:
String allitem=null;
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
for(int i = 0;i<jList1.getModel().getSize();i++)
{
allitem = (String)jList1.getModel().getElementAt(i)+"::"+allitem;
}
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ft", "root", "");
PreparedStatement stmt = conn.prepareStatement("insert into ftt (listname,listitem) values (?,?)");
stmt.setString(1, jTextField1.getText());
stmt.setString(2, allitem);
stmt.execute();
conn.close();
}catch(
Exception e)
{
JOptionPane.showMessageDialog(null, e);
e.printStackTrace();
}
JOptionPane.showMessageDialog(null, "done");
}
现在在下一页用户可以查看 JList 中的所有字符串(Jlist 保存为字符串)项。我想向用户显示所选 JList 项目的详细信息。我已经创建了一个 Jtable,并希望显示所选 JList 项的其他详细信息。
我尝试过的代码:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
Update_table1();
}
private void Update_table1(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/ft","root","");
String query="SELECT listname FROM ftt WHERE listitem=?;";
PreparedStatement prepstmt=conn.prepareStatement(query);
String s = (String) jList1.getSelectedValue();
prepstmt.setString(1,s);
ResultSet rs=prepstmt.executeQuery();
jTable3.setModel(DbUtils.resultSetToTableModel(rs));
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
但是当使用此代码时,Jtable 没有显示任何值,尽管它使用了表头名称。请任何人都可以检查我在如何搜索保存在 MySQL 数据库中的字符串方面是否正确。我认为问题就在那里,因为其他事情都很好。
注意:它没有显示任何错误或异常。
【问题讨论】:
标签: java mysql string swing jlist