mybatis查询数据库报错“brandName“ not found。

问题遇到的现象和发生背景

Mybatis学习过程报错,麻烦各位帮忙看看解决,十分感谢啊。

package com.beike.test;

import com.beike.mapper.BrandMapper;
import com.beike.pojo.Brand;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MyBatisTest {
    @Test
public void testSelectAll() throws IOException {
    //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 brands = brandMapper.selectAll();

    System.out.println(brands);
    //5.释放资源
    sqlSession.close();
}

    @Test
    public void testSelectById() throws IOException {

        //接受参数
        int id = 1;

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

        SqlSession sqlSession = sqlSessionFactory.openSession();

        BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);

        Brand brand = brandMapper.selectById(id);
        System.out.println(brand);
        sqlSession.close();
    }

    @Test
    public void testSelectByCondition() throws IOException {
        //接收参数
        int status = 1;
        String companyName = "华为";
        String brandName = "华为";

        // 处理参数
        companyName = "%" + companyName + "%";
        brandName = "%" + brandName + "%";

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

        Map map = new HashMap();
         map.put("status" , status);
        map.put("companyName", companyName);
         map.put("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 brands = brandMapper.selectByCondition(status, companyName, brandName);
        //List brands = brandMapper.selectByCondition(brand);
        List brands = brandMapper.selectByCondition(map);
        System.out.println(brands);

        //5. 释放资源
        sqlSession.close();

    }
}

用代码块功能插入代码,请勿粘贴截图
package com.beike.pojo;

/**
 * 品牌
 *
 * alt + 鼠标左键:整列编辑
 *
 * 在实体类中,基本数据类型建议使用其对应的包装类型
 */

public class Brand {
    // id 主键
    private Integer id;
    // 品牌名称
    private String brandName;
    // 企业名称
    private String companyName;
    // 排序字段
    private Integer ordered;
    // 描述信息
    private String description;
    // 状态:0:禁用  1:启用
    private Integer status;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public Integer getOrdered() {
        return ordered;
    }

    public void setOrdered(Integer ordered) {
        this.ordered = ordered;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return "Brand{" +
                "id=" + id +
                ", brandName='" + brandName + '\'' +
                ", companyName='" + companyName + '\'' +
                ", ordered=" + ordered +
                ", description='" + description + '\'' +
                ", status=" + status +
                '}';
    }
}

运行结果及报错内容

代码运行查询数据库的时候,第三个方法参数显示为空了,然后前两个方法报错说“brandName" not found。

BrandMapper接口
package com.beike.mapper;

import com.beike.pojo.Brand;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface BrandMapper {
    /*
    * 查询所有
    * */
    List selectAll();
    /**
     * 查看详情
     */
    Brand selectById(int id);

    //List selectByCondition(@Param("status") int status, @Param("companyName") String companyName,@Param("brandName") String brandName);

    //List selectByCondition(Brand brand);

    List selectByCondition(Map map);
}

BrandMapper.xml

mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="com.beike.mapper.BrandMapper">


    <select id="selectAll" resultMap="brandResultMap">
        select * from tb_brand;
    select>


    <resultMap id="brandResultMap" type="brand">
        
        <result  column="brand_name" property="brandName"/>
        <result  column="company_name" property="companyName"/>
    resultMap>

    <select id="selectById" resultMap="brandResultMap">
        select * from tb_brand where id = #{id};
    select>

    
    <select id="selectByCondition" resultMap="brandResultMap">
        select * from tb_brand where status = #{status}
        and company_name like #{companyName}
        and brand_name like #{brandNmae}
    select>

    
mapper>


改成下边试试
mapper
List selectByCondition(@Param("map") Map map);

mapper.XML
select * from tb_brand where status = #{map.status} and company_name like #{map.companyName} and brand_name like #{map.brandNmae}