sql数据库查询语句where条件为空查询全部数据,不为空按照条件查询

肯定有同学遇到和我一样的烦恼,当我有多个参数且有的参数为空的需要查询的时候你们是否还在用下面这种方式。

又或者这样

 然后满心欢喜的等待接口返回的时候却给了一个大大的空 [ ];

正确方式是这样子的需要用到sql中的like方法

具体是意思这样子的mysql中的like什么意思,MySQL中Like是什么意思?_Chrix Bell的博客-CSDN博客

 然后就是这样子了

String sql = "select * from student where name like ?   and gender like ?  and email like ? and province like ?   and city  like ?  ";

之后再对?进行赋值

this.pstmt = this.conn.prepareStatement(sql);
        this.pstmt.setString(1, "%"+name+"%");// %符号作为占位符把参数包裹起来
        this.pstmt.setString(2, "%"+gender+"%");
        this.pstmt.setString(3, "%"+email+"%");
        this.pstmt.setString(4, "%"+province+"%");
        this.pstmt.setString(5, "%"+city+"%");
        ResultSet rs = this.pstmt.executeQuery();
        while(rs.next()) {
            int id = rs.getInt("id");
            String Name = rs.getString("name");
            String Gender=rs.getString("gender");
            String  Email=rs.getString("email");
            String Province=rs.getString("province");
            String City=rs.getString("city");
            Student student= new Student(id,Name,Gender,Email,Province,City);
            Data.add(student);
        }
        return  Data;

这样就可以得到你想要的查询结果了

希望有所帮助! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我中意你呀丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值