JAVA Web学习笔记16 mybatis之动态条件查询

12 篇文章 0 订阅

多条件动态查询

问题:用户在进行查询的时候,可能有的选项并没有填,如果直接进行查询的话是查不出来的,所以这里需要进行改进。
在这里插入图片描述BrandMapper.xml
在这里插入图片描述
if:条件判断
test:逻辑表达式

问题1:如果同时没有了status和brandName,会报错:
在这里插入图片描述原因是这里多了一个and
解决方案:多加一个恒等式,然后全体加and在这里插入图片描述
但其实mybatis已经有了非常完美的解决方案——使用< where >标签,替换where关键字。

单条件动态查询

在这里插入图片描述
在这里插入图片描述

@Test
    public void testSelectByConditionSingle() throws IOException {
//        接收参数
        int status = 1;
        String companyName = "华为";
        String brandName = "华为";
//        为模糊匹配like处理参数
        companyName = "%" + companyName + "%";
        brandName = "%" + brandName + "%";

        //封装对象
        Brand brand = new Brand();
//        brand.setBrandName(brandName);
//        brand.setCompanyName(companyName);
//        brand.setStatus(status);



        //1、获取sqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2、获取sqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3、获取Mapper接口的代理对象
        BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);
        //4、执行方法
        List<Brand> brands = brandMapper.selectByConditionSingle(brand);
        System.out.println(brands);

        //释放资源
        sqlSession.close();
    }
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值