配置文件 条件查询

  1. 编写接口方法:Mapper

      **参数:所有查询条件

      **结果:List<Brand>

  2. 编写SQL语句:SQL映射文件

  3. 执行方法,测试

方法一:

步骤一:

在BrandMapper.xml文件中设置select查询语句

<select id="selectByCondition" resultMap="brandResultMap">
select  *
from tb_brand
where
    /**
      *status等值连接
      company_name和brand_name使用like进行模糊查询
      #:参数占位符号
     */
        status = #{status}
    and company_name like #{companyName}
    and brand_name like #{brandName}
</select>

步骤二:

在同一路线上对应的BrandName.java上写方法对应的方法语句。

//条件查询:根据status进行等值查询,根据company_name和brand_name进行模糊查询

List<Brand> selectByCondition(@Param("status")int status, @Param("companyName")String companyName, @Param("brandName")String brandName);
 

步骤三:

在MyBatisTest.java上书写调用方法代码
//条件查询:根据status进行等值查询,根据company_name和brand_name进行模糊查询
public void testselectByCondition() throws IOException {
//接受参数 int ststus = 1;//现在是固定数据,以后会变成动态数据 String companyName = "华为"; String brandName = "华为";
//处理参数,模糊查询需要自带百分号或者下划线,这样处理可以带上百分号 companyName = "%" + companyName + "%"; brandName = "%" + brandName + "%";
//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.selectByCondition(ststus,companyName,brandName); System.out.println(brands);
//5.释放资源 sqlSession.close(); }
Ps.1.在BrandMpapper.java文件上进行条件查询方法书写时,它的参数接收是散装参数接收:如果方法中有多个参数,则需要使用@param(”SQL参数占位符的名称”)

BrandMpapper.java文件里@param后的的参数

BrandMpapper.xml文件里的参数

必须一致。
2. 测试类调用函数的时候,需要接收参数,需要将参数处理了,模糊查询需要自带百分号或者下划线,需要手动加上。
    int ststus = 1;//现在是固定数据,以后会变成动态数据

    String companyName = "华为";

    String brandName = "华为";

    //处理参数,模糊查询需要自带百分号或者下划线,这样处理可以带上百分号

    companyName = "%" + companyName + "%";

    brandName = "%" + brandName + "%";
3.在 IntelliJ IDEA 中编辑xml文件,先要对其进行注释的话可以直接用ctrl+/ 快捷键
与之对应的取消快捷键的方式就是用ctrl+shift+/

方法二:

步骤一:

在BrandMapper.java文件里面,调整方法

    //数据Brand封装对象 直接传到方法里来
  List<Brand> selectByCondition(Brand brand);

步骤二:

//处理参数,定义一个关键字,将查询的关键字封装
         Brand brand = new Brand();
         brand.setStatus(status);
         brand.setCompanyName(companyName);
         brand.setBrandName(brandName);
//4.执行方法
        //List<Brand> brands = brandMapper.selectByCondition(status,companyName,brandName);
        List<Brand> brands = brandMapper.selectByCondition(brand);//传入上面定义的关键字
        System.out.println(brands);

 

方法三:

步骤一:

  List<Brand> selectByCondition(Map map);

步骤二:

 Map map = new HashMap();
         map.put("status",status);
         map.put("companyName",companyName);
         map.put("brandName",brandName);

步骤三:

List<Brand> brands = brandMapper.selectByCondition(map);
        System.out.println(brands);

 

结果:

 

 

 







 
posted @ 2023-03-26 11:14  YE-  阅读(28)  评论(0编辑  收藏  举报