• Mybatis动态SQL(where元素、set元素、if元素)


    Mybatis动态SQL(where元素、set元素、if元素)

    - where 元素只会在至少有一个子元素的条件返回 SQL 子句的情况下才去插入“WHERE”子句。而且,若语句的开头为“AND”或“OR”,where 元素也会将它们去除。

    (也就是说where用在有多条if的条件的查询中,同时会过滤掉语句开头的AND、OR)

    - if 元素可以对给予的对象再进行一次判断

    - set元素可以用于动态包含需要更新的列,而舍去其它的。

    1、创建一个用于搜索的动态SQl

    (1)、在表对应的配置文件的mapping中加入以下select标签(那么它再查找的时候就会先对其元素判空)

     1     <select id="search" resultMap="userMap">
     2         select * from usr1
     3         <where>
     4             <if test="username!=null">
     5                 and username=#{username}
     6             </if>
     7             <if test="password!=null">
     8                 and password=#{password}
     9             </if>
    10         </where>
    11     </select>

    (2)、在主方法中加入以下代码,(加载相应的配置文件,查询用户名为getchar、密码为1234的用户是否存在,这种判断在用户登录中往往比较有用)

     1 config = Resources.getResourceAsStream("mybatis-config.xml");
     2 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(config);
     3 
     4 SqlSession session =  factory.openSession();
     5 UserDAO userDAO = session.getMapper(UserDAO.class);
     6 User u = new User();
     7 u.setPassword("1234");
     8 u.setUsername("getchar");
     9 List<User> users = userDAO.search(u);
    10 System.out.println(users.size());
    11 System.out.println(users);

    (3)、这样实现查询的时候,就可以实现判断密码和账号是否为空

  • 相关阅读:
    学好VC++的十大良好习惯
    VC6.0调试技巧
    匈牙利命名法
    VC中常用文件操作(三)
    VL_FEAT——图像处理函数库
    MATLAB——linspace
    (Your)((Term)((Project)))(字符串处理)
    Matrix Chain Multiplication(栈的简单应用)
    The Triangle(DP基础)
    MATLAB——polyfit
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/9269798.html
Copyright © 2020-2023  润新知