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