[英]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.