JavaWeb dao层条件查询(模糊查询)的sql语句

18 篇文章 1 订阅
11 篇文章 0 订阅

目的:通过一条查询语句能够实现用户所有的条件进行查询

代码

/**
     * 通过用户输入的参数,到数据库中查询到商品信息,并以集合的方式返回
     * @param pname 传入的查询参数
     * @param pdesc 传入的查询参数
     * @return 返回一个集合,其集合由实体Product组成
     * @throws SQLException
     */
    public List<Product> findProByIndis(String pname, String pdesc) throws SQLException {
        //创建dbutils下的QueryRunnner
        QueryRunner runner = new QueryRunner(C3P0Utils.getDataSource());
        //☆☆☆注意where 1=1后面一定要留空格,否则和后面进行字符串拼接后,到数据库查询会出现错误
        String sql = "select * from product where 1=1 ";
        //创建一个集合用来存储查询的参数,因为我们不清楚客户到底输入几个参数,所以用集合来存放
        List<String> list = new ArrayList<String>();
        if (pname != "") {
            //如果用户输入的pname不为空,那需要进行字符串拼接
            sql += "and pname like ? ";
            //将用户输入的参数添加到集合
            list.add("%" + pname + "%");
        }
        if (pdesc != "") {
            sql += "and pdesc like ? ";
            list.add("%" + pdesc + "%");
        }
        //最后将集合转化成数组
        Object[] params = list.toArray();
        //调用runner对象的query查询方法,并将集合返回
        return runner.query(sql, new BeanListHandler<Product>(Product.class), params);

注意点:

这里写图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值