标签:status companyName brand --- brandName 参数 && SQL MyBatis
查看详情
1、编写接口方法:Mapper接口
参数:id
返回结果:Brand
2、编写SQL语句:SQL映射文件;
参数占位符:
#{}:会将参数替换为?为了防止SQL注入
${}:会存在参数注入问题
3:执行方法,测试
条件查询:
多条件查询:散装参数(需要使用@Param("SQL参数占位符合集"))、对象参数、Map集合的参数。
1、编写接口方法:Mapper接口
2、编写SQL语句:SQL映射文件;
3:执行方法,测试
@Test public void test_SelectByCondition() throws IOException { int id = 1; int status =1; String companyName = "华为"; String brandName = "华为"; //处理参数 companyName = "%"+companyName+"%"; brandName = "%"+brandName+"%"; //封装对象——方法2 Brand brand = new Brand(); brand.setStatus(status); brand.setBrandName(brandName); brand.setCompanyName(companyName); //方法三 Map集合 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<Brand> brands = brandMapper.selectByCondition(status,companyName,brandName); //方法二 List<Brand> brands = brandMapper.selectByCondition(brand); //方法三 List<Brand> brands = brandMapper.selectByCondition(map); System.out.println(brands); //5 释放资源 sqlSession.close(); }
遇到的问题:当条件查询有查询条件为中文时查询结果为空,需要在mybatis-config.xml设置编码,但是xml文件的&需要转义,最后修改的结果是这样的
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false"/>
被这个小问题卡了好久好久,不到一个小时。
标签:status,companyName,brand,---,brandName,参数,&&,SQL,MyBatis 来源: https://www.cnblogs.com/zhaolei0419/p/16656328.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。