gpt4 book ai didi

java - 如何在MySQL数据库中保存的字符串中进行搜索

转载 作者:行者123 更新时间:2023-11-29 09:37:57 24 4
gpt4 key购买 nike

我通过在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com