栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day2021/9/30(MYbatis动态sql)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day2021/9/30(MYbatis动态sql)

9.5 动态SQL 9.5.1 什么是动态SQL

动态SQL就是Mybatis允许在映射文件中通过标签控制SQL语句最后的拼凑结果。

9.5.2 标签
  • 语法:在mapper映射文件中,标签就相当于Java中if语句,如果条件成立,标签体内的SQL语句有效。

    
    	
    		//有效的SQL语句片段
    	
    
    		select * from user where 1=1
    		
    			and name like '%${name}%'
    		
    	
    
  • 测试

        @Test
        public void testCondtion() {
            UserMapper UserMapper = MyBatisUtils.getMapper(UserMapper.class);
    
            UserVo userVo = new UserVo();
            userVo.setName("张");
    
            List list = UserMapper.condition(userVo);
            // 打印
            list.forEach(System.out::println);
    
            MyBatisUtils.commitAndclose();
        }
    
9.5.3 标签
  • 多条件查询时,我们使用了一个小技巧“where 1=1”,mybatis提供了一个进行取代。

  • 修改映射文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FVEUHZWa-1632962235892)(assets/image-20210723100326211.png)]

    	
    		select * from user
    		
    			
    			
    				'${id}'
    			
    		
    	
    
  • 测试

        @Test
        public void testCondtion() {
            UserMapper UserMapper = MyBatisUtils.getMapper(UserMapper.class);
    
            UserVo userVo = new UserVo();
            userVo.setIds(Arrays.asList("u001","u002"));
    
            List list = UserMapper.condition(userVo);
            // 打印
            list.forEach(System.out::println);
    
            MyBatisUtils.commitAndclose();
        }
    

    总结:动态Sql可以应对多条件多要求的查询业务,可以根据编写者的判断逻辑来编写不一样的sql语句,属实好用。
    离工作又近了一天!!!!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/285065.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号