• Mybatis的使用(3)


    1:动态sql:

    意义:可以定义代码片段,可以进行逻辑判断,可以进行循环或批量处理,使条件判断更为简单

    1.1:定义代码片段简化代码:

    1.2:多条件查询: 

    的用法:用于条件判断查询:

    List selectCondition(User user);





       User user=new User();
    user.setName("张");
    user.setPwd("111111");
    List users = usermapper.selectCondition(user);
    for (User user1 : users) {
    System.out.println(user1);
    }

    }

    1.3:条件修改:

    的用法:用于条件判断更新:

    int updatecondition(User user);


    update mybatis.user


    name=#{name},


    pwd=#{pwd},



    where id=#{id}



    User user=new User();
    user.setId(2);
    user.setName("李四");
    int i = usermapper.updatecondition(user);
    sqlSession.commit();

    注意:使用至少更新一列

     

     

    1.3:循环查询,批量删除,批量增加,批量更新:

    循环查询的用法:

    List selectForEach(Integer[] integers);


    Integer[] arr={2,4,6};
    List users = usermapper.selectForEach(arr);
    for (User user1 : users) {
    System.out.println(user1);
    }

     

    参数讲解:

    collection:用来指定参数的类型,如果是List集合,则为list,如果是Map集合,则为map,如果为数组,则为array

    item:每次循环遍历出来的值或对象

    separator:多个值或对象之间的分隔符

    open:整个循环外面的前括号

    close:整个循环外面的后括号

     

    批量删除的用法:

    int deleteForeach(Integer[] integers);接口

    delete from mybatis.user
    where id in

    #{id}

    xml文件
    Integer[] arr={1,2};
    int i = usermapper.deleteForeach(arr);
    sqlSession.commit();测试

    批量增加的用法:

    int insertForeach(List list);


    insert into mybatis.user(id,name,pwd)
    values

    (#{u.id},#{u.name},#{u.pwd})


    注意:item="u",增加的对象为u,取出成员变量的形式应该为u.name等
    List list=new ArrayList();
    list.add(new User(1,"张三","1111111"));
    list.add(new User(2,"张三","1111111"));
    list.add(new User(10,"张三","1111111"));
    int i = usermapper.insertForeach(list);
    sqlSession.commit();

    批量更新的用法:

    int updateForeach(List list);





    update mybatis.user


    name=#{u.name},


    pwd=#{u.pwd},



    where id=#{u.id}


     

     

    List list=new ArrayList();
    list.add(new User(1,"王五","1111111"));
    list.add(new User(2,"李四","22222222"));
    list.add(new User(10,"张三","3333333"));
    int i = usermapper.updateForeach(list);
    sqlSession.commit();

    注意:需要在dabase.properties中加入&allowMultiQueries=true,即允许多行操作

     

     

    指定参数位置下标查询:

     

     

     

     

    入参是map:

     

     

     

     

    返回值是一行的map:

    Map usermap(Integer id);



    Map usermap = usermapper.usermap(1);
    System.out.println(usermap);
    System.out.println(usermap.get("name"));

    返回值是多行的map:

    List getmap();



    List getmap = usermapper.getmap();
    for (Map map : getmap) {
    System.out.println(map);
    }
  • 相关阅读:
    Zabbix监控部署项目
    yamot:一款功能强大的基于Web的服务器安全监控工具
    React给方法使用useState
    TCP/IP协议分析实验:通过一次下载任务抓包分析
    云服务器Centos8.2SSH登陆、安装部署图形化界面以及VNC连接一文详解
    Python内置函数--eval()
    pytorch C++ 移植
    sql引用
    用 Python 编写安卓 APK之helloworld(基于BeeWare)
    基于PLC控制四自由度气动式机械手设计
  • 原文地址:https://www.cnblogs.com/zhangtaibing/p/16538447.html