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

MyBatis-sql动态语句学习用法参考

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

MyBatis-sql动态语句学习用法参考

1. 2. 3.  4. 5.  1.list 集合   2.array 数组 6.

 首先,我们需要一些配置,当然前面你自己可能已经配置好了,那么久简单来一些数据

使用sql 添加一些数据,那么我们开始吧

create table useradd(id bigint primary key auto_increment comment 'id',username varchar(50) comment '用户名',
password varchar(64) comment '密码',nickname varchar(50) comment '昵称',gender varchar(250) comment '势力'
)comment '用户' charset =utf8;

insert into useradd( username, password, nickname, gender) VALUES
('rod','123456','可莉','蒙德'),
('feng','123456','风神','蒙德'),
('gen','123456','刻晴','璃月'),
('mager','123','神里凌华','稻妻'),
('lei','123','雷电将军','稻妻'),
('chong','123','八重子','稻妻')

1. 标签
  mapper 接口上: List getByUser(UserDto dto);

sql 语句上:  


       select  from useradd
        
          where  nickname=#{nickname}
        
        
            or gender=#{gender}
        
   

在sql 中的 里的判断,只要判断有为空,或者错误时,就不会进行条件查询了,也就是不会执行这里的sql语句了 

类似于 and 所有你想全部进行条件查询 就改成 or

查询为:

  @Test
    void getById(){
        UserDto dto =new UserDto();
        dto.setNickname("可莉");
        dto.setGender("稻妻");
        List list = mapper.getByUser(dto);
        list.forEach(System.out::println);

        System.out.println(" 方式的选项 类似于 and ");
    }


 

2. 语句的用法
  mapper 接口:  List getWhere(UserDto dto);

sql 语句:


        select  from useradd
        
            
                nickname=#{nickname}
            
            
                or gender=#{gender}
            
            
                or  id=#{id}
            
        
    

  prefi= 指定代替的类型   where 用:prefixocerrides= " "  类型  里面判断类型 可以自己添加

          trim 指定 < set> 的用法 : 这里就是 suffixOverrides=","   用逗号


        update useradd
        
            
                username=#{username},
            
            
                 password=#{password},
            
            
                nickname=#{nickname},
            
            
                gender=#{gender}
            
        
        where id=#{id}
    

查询:

 @Test
    void getById03() {
        UserDto dto = new UserDto();
        dto.setId(7L);

        dto.setUsername("keq");
        dto.setNickname("刻晴-雷");
        dto.setGender("稻妻-神里");
        dto.setPassword("456789");

        mapper.updateName02(dto);
        System.out.println("修改成功!");

        List list = mapper.getWhere02(dto);
        list.forEach(System.out::println);
    }

   这个两个一起使用了 , trim -> 指定的类型不用,后面的类型也需要使用不同的类型

5. 语句的用法       对于动态SQL 非常必须的,主是要迭代一个集合,通常是用于IN 条件。
List 实例将使用“list”做为键,数组实例以“array” 做为键。

                        List 集合方式的使用
Mapper 接口:  List getList(List name);

sql 语句:


        select  from useradd where nickname in
        
            #{name}
        
 

   查询为:

 @Test
    void getArray(){
        String[] list =new String[3];
        list[0] ="可莉";
        list[1] ="神里凌华";
        list[2] ="神里凌华527";

        List dtos = mapper.getArray(list);
        dtos.forEach(System.out::println);
        System.out.println( "Array 数组 方式,多查询");
    }

    这当中的 List 跟 array 是非常相似的

6.< choose >  的用法 接口: List getWhere03(UserDto dto);

sql 语句:

  

查询为:

 @Test
    void getChoos() {
        UserDto dto = new UserDto();
        dto.setId(7L);
     
        dto.setNickname("刻晴-雷");
        dto.setGender("稻妻-神里");

        List list =mapper.getWhere03(dto);
        list.forEach(System.out::println);
        System.out.println(" 查询也跟前面也是比较相似的! ");

    }
           有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。MyBatis提供了choose 元素,按顺序判断when中的条件出否成立,如果有一个成立,则choose结束。当choose中所有when的条件都不满则时,则执行otherwise中的sql。类似于Java 的switch 语句,choose为switch,when为case,otherwise则为default。
         if 是与(and)的关系,而choose是或(or)的关系。
 


 

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

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

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