MyBatis模糊查询不报错,但查不出数据
1.在navicat验证sql语句
select *
from tb_brand
where status = 1
and brand_name like "%华为%"
and company_name like "%华为%"
能显示查询结果:
2.检查测试代码
/**
* 多条件模糊查询
* @throws IOException
*/
@Test
public void testSelectCondition() throws IOException {
//接收参数
int status=1;
String brandName="华为";
String companyName="华为";
//处理参数
brandName="%"+brandName+"%";
companyName="%"+companyName+"%";
//封装对象
Brand brand=new Brand();
brand.setStatus(status);
brand.setBrandName(brandName);
brand.setCompanyName(companyName);
//构建SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//获取执行sql对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//获取mapper代理
BrandMapper brandmapper = sqlSession.getMapper(BrandMapper.class);
// List<Brand> brands = mapper.selectCondition(status,brandName,companyName);
List<Brand> brands = brandmapper.selectCondition(brand);
System.out.println(brands);
sqlSession.close();
}
3.检查映射文件
都没有问题,就是没有查出数据,于是修改了下mybatis-config.xml
<property name="url" value="jdbc:mysql:///mybatis?useSSL=false&characterEncoding=utf8"/>
characterEncoding=utf8,指定字符的编码格式,就可以查出数据