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

  • 相关阅读:
    Jenkins的安全控制
    浅谈JNDI的使用
    hdu 4544 湫湫系列故事——消灭兔子
    如何在工作和实践中学习射频知识
    JSONObject 解析
    SharePoint 2010 WebPart Web部分 总的膏
    J2EE学习笔记
    C和指针 (pointers on C)——第十二章:利用结构和指针
    UVA
    EasyUI-DataGrid多线动态实现选择性合并
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/9269798.html
Copyright © 2011-2022 走看看