java连接数据库的模糊查询

1:模糊查询是比较常见的一种查询方式,例如在订单表中,包含有订单的具体日期。如果要查询某年某月的订单信息,最好的方式就是使用模糊查询。进行模糊查询需要使用关键字LIKE。在使用LIKE关键字进行模糊查询时,可以使用通配符"%",来代替0个或者多个字符,使用下划线_来代表一个字符。

注释:需要注意的是在使用LIKE的时候,后面的查询条件需要加 ’ ',英文状态下的单引号引起来,不然报错如下

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘%别%’ at line 1

package com.ningmeng;

import java.sql.*;

public class Test07 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    try {
        Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
        System.out.println("加载数据库驱动成功");
        String url="jdbc:mysql://localhost:3306/test";//声明自己的数据库test的url
        String user="root";//自己的数据库用户名
        String pass="123456";//自己的数据库密码
        //建立数据库连接,获得连接的对象conn
        Connection conn=DriverManager.getConnection(url,user,pass);
        System.out.println("连接数据库驱动成功");
        Statement stmt=conn.createStatement();//创建一个Statement对象
        String sql="select * from users where username like '%别%' ";//生成sql语句
        ResultSet rs=stmt.executeQuery(sql);//执行sql语句
        int id,age,sex;
        String username,password;
        System.out.println("id\t 用户名\t 密码\t 性别\t 年龄");
        while(rs.next()){
            id=rs.getInt("id");
            username=rs.getString(2);
            password=rs.getString("password");
            age=rs.getInt(4);
            sex=rs.getInt("age");
            System.out.println(id+"\t"+username+"\t"+password+"\t"
                    +sex+"\t"+age);//输出查询结果
        }
        System.out.println("模糊查询成功");
        conn.close();//关闭数据库连接
        System.out.println("关闭数据库连接成功");
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
}

}
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里是一个使用 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 驱动程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值