我通过在 jtextField 中获取用户的输入创建了一个 JList。然后,我通过将 JList 转换为字符串,将 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 数据库中的字符串。我认为问题就在那里,因为其他事情都运转良好。
注意:它没有显示任何错误或异常。
最佳答案
这不是像连接字符串那样保存记录的最佳方法。您最好使用规范化表并将所有列表元素保留为记录。对于您的代码,您尝试查询包含串联信息的字段。因此,您可以使用“like”关键字而不是“=”。
"SELECT listname FROM ftt WHERE listitem like %?%;"
关于java - 如何在MySQL数据库中保存的字符串中进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57203075/