zoukankan      html  css  js  c++  java
  • 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)、这样实现查询的时候,就可以实现判断密码和账号是否为空

  • 相关阅读:
    [树莓派]wifi在面板看不到,但是可以scan到的解决方案
    关于GCD的几个结论
    Ubuntu配置vncserver
    树莓派更改vnc分辨率
    玩转树莓派
    两个树莓派(或香蕉派)之间的音频直播测试
    使用树莓派录音——USB声卡
    树莓派自定义命令(给命令起别名)
    gitlab搭建
    linux下的缓存机制及清理buffer/cache/swap的方法梳理 (转)
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/9269798.html
Copyright © 2011-2022 走看看