Java连接数据库JDBC实现模糊查询like

第一种方式:直接在SQL语句中进行拼接,此时需要注意的是“参数”在SQL语句中需要用单引号拼接起来

String sql = "select * from bookinfo where bname like '%" + 参数 + "%'";

第二种方式: 使用占位符,在占位符赋值时进行拼接
String sql = "select * from bookinfo where bname like ?"; ps.setString(1, "%"+参数+"%");

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这里是一个使用 Java Swing 和 JDBC 连接数据库后进行模糊查询的示例代码: ``` import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import javax.swing.table.*; public class FuzzyQueryExample extends JFrame { private JTextField queryTextField; private JTable resultTable; public FuzzyQueryExample() { super("Fuzzy Query Example"); // 创建 UI 组件 JLabel queryLabel = new JLabel("Enter a keyword to search:"); queryTextField = new JTextField(20); JButton queryButton = new JButton("Search"); resultTable = new JTable(); // 将组件添加到容器中 JPanel controlPanel = new JPanel(new FlowLayout()); controlPanel.add(queryLabel); controlPanel.add(queryTextField); controlPanel.add(queryButton); JScrollPane resultScrollPane = new JScrollPane(resultTable); Container contentPane = getContentPane(); contentPane.add(controlPanel, BorderLayout.NORTH); contentPane.add(resultScrollPane, BorderLayout.CENTER); // 添加事件处理程序 queryButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { performQuery(); } }); // 设置窗口属性 setSize(400, 300); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } private void performQuery() { String keyword = queryTextField.getText().trim(); if (keyword.isEmpty()) { JOptionPane.showMessageDialog(this, "Please enter a keyword to search.", "Error", JOptionPane.ERROR_MESSAGE); return; } try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password")) { String sql = "SELECT * FROM products WHERE name LIKE ?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, "%" + keyword + "%"); ResultSet rs = stmt.executeQuery(); DefaultTableModel model = new DefaultTableModel(); model.addColumn("ID"); model.addColumn("Name"); model.addColumn("Price"); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); double price = rs.getDouble("price"); model.addRow(new Object[] { id, name, price }); } resultTable.setModel(model); } catch (SQLException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(this, "Error executing query: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } public static void main(String[] args) { new FuzzyQueryExample(); } } ``` 这个示例程序包括一个带有文本框、按钮和表格的简单 UI。当用户点击按钮时,程序将从数据库中查询包含指定关键字的记录,并将结果显示在表格中。在这个示例中,我们使用了 MySQL 数据库,但您可以根据需要替换为其他数据库。请确保已添加正确的 JDBC 驱动程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值