繁体   English   中英

MySQL之类的查询,用于在数据库表中搜索子字符串

[英]MySQL like query for searching substring in a database table

我已将数据保存在MySQL数据库表中。 我正在使用jTextField接受用户输入。 我想在用户输入子字符串是一部分的jtable中显示行。

我试过的代码:

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        try{

            Class.forName("com.mysql.jdbc.Driver");
            Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/date","root","");
            String query="SELECT * FROM ok where day like '%=?%'";
            PreparedStatement prepstmt=conn.prepareStatement(query);
           prepstmt.setString(1,jTextField2.getText());   // include this for showing only particular row else remove this line
            ResultSet rs=prepstmt.executeQuery(); 
            jTable1.setModel(DbUtils.resultSetToTableModel(rs));

        }catch(Exception e){

            JOptionPane.showMessageDialog(null, e);
        }

    } 

在我的情况下,要搜索的子字符串由用户在jTextField1中输入,而我想使用该用户输入。

请更正我的** String query =“”; **

相信图书馆会不会取代? 内部字符串。 您需要执行以下操作:

String query="SELECT * FROM ok WHERE day LIKE CONCAT('%', ?, '%')";

或者,您可以使用Java构建字符串:

String query="SELECT * FROM ok WHERE day LIKE ?";
PreparedStatement prepstmt = conn.prepareStatement(query);
prepstmt.setString(1, '%' + jTextField2.getText() + '%');

您可能要从用户提供的字符串中删除%_字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM