【问题标题】:How to search in a string saved in MySQL database如何在保存在 MySQL 数据库中的字符串中进行搜索
【发布时间】: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


    【解决方案1】:

    将记录作为连接字符串的方式并不是最好的方法。您最好使用规范化表并将所有列表元素保留为记录。对于您的代码,您尝试查询包含连接信息的字段。所以你可以使用“like”关键字代替“=”。

    "SELECT listname FROM ftt WHERE listitem like %?%;"
    

    【讨论】:

      猜你喜欢
      • 2014-12-17
      • 1970-01-01
      • 2011-09-30
      • 2016-12-01
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      相关资源
      最近更新 更多