zoukankan      html  css  js  c++  java
  • ibatIs中的isNotNull、isEqual、isEmpty

    isNull判断property字段是否是null,用isEmpty更方便,包含了null和空字符串

    例子一:
    isEqual相当于equals,数字用得多些,一般都是判断状态值
    <isEqual property="state" compareValue="0">
    < /isEqual>

    <isEqual property="state" compareProperty="nextState">
    < /isEqual>

    例子一:

    传入的map或者类的属性name等于"1"吗,是就附加and和vvvv = '哈哈'
    <isEqual property="name" compareValue="1" prepend="and">
    vvvv = '哈哈'
    < /isEqual>

    传入的map或者类的属性name是null吗,是就附加and和vvvv = null
    < isNull property="name" prepend="and">
    vvvv = null
    < /isNull>

    我的应用:

    ###说明

    1. 1.         功能描述

    用户可自行设置部分非重要弹出公告的设置。

    1. 2.         功能需求

    1)         允许用户自行屏蔽“返销公告”,“银行存款通知”,“在线存款通知”三种类型公告。

    2)         可在以上三种公告弹出页面上使用复选框设置不再通知此类公告。

    1. 3.         界面需求

    1)         弹出公告页:

    在“返销公告”( 25 ),“银行存款通知”( 63 )及“在线存款通知”( 64 )三种类型公告页面上增加复选框“不再弹出此类公告”。

    2)         公告提示设置:

    可直接对以上三种公告进行屏蔽设置(开启 10| 关闭11)。

    1. 4.         业务流程

     

    1. 5.         逻辑需求

    用户存储屏蔽状态存储于 t_bussiness_set 中的“返销公告屏蔽”( sale_back ),“银行存款通知”(remittance_bank ),“在线存款通知”( remittance_online )字段。

    1. 6.         性能需求
    1. 7.         相关模块
    1. 8.         数据库相关表

    1)         T_bussiness_set                                  商户设置表

    2)         T_notice                                                 公告表

    1.sqlMap

    Xml代码  
    1. <select id="querySingleModelByOut"  parameterClass="com.hanpeng.base.phone.model.TBussinessNotice"   
    2.     resultClass="com.hanpeng.base.phone.model.TBussinessNotice">  
    3.     select * from (select row_.*, rownum rownum_ from (  
    4.         SELECT  
    5.             i.NOTICE_NUM  as noticeNum ,              
    6.             i.BUSSINESS_ID  as bussinessId ,              
    7.             i.STATE  as state ,           
    8.             i.READ_DATE  as readDate ,  
    9.             n.NOTICE_TITLE as noticeTitle ,           
    10.             n.NOTICE_INFO as noticeInfo ,             
    11.             n.CREATE_DATE as createDate ,             
    12.             n.EMPLOYEE_ID as employeeId ,             
    13.             n.NOTICE_TYPE as noticeType ,             
    14.             n.NOTICE_SHOW_TYPE as noticeShowType ,            
    15.             n.FINISH_DATE as finishDate ,             
    16.             n.PUBLISH_DATE as publishDate   
    17.         FROM  T_BUSSINESS_NOTICE i left join T_NOTICE n on n.NOTICE_NUM = i.NOTICE_NUM   
    18.         WHERE  
    19.         n.PUBLISH_DATE &lt;= sysdate AND n.FINISH_DATE &gt;= sysdate  
    20.         <isNotEmpty prepend=" AND " property="bussinessId">   
    21.             i.BUSSINESS_ID = #bussinessId# </isNotEmpty>  
    22.         <isNotEmpty prepend=" AND " property="state">   
    23.             i.STATE = #state# </isNotEmpty>  
    24.         <isNotEmpty prepend=" AND " property="noticeShowType">   
    25.             n.NOTICE_SHOW_TYPE = #noticeShowType# </isNotEmpty>  
    26.         <isEqual property="saleBack" compareValue="10" prepend=" AND ">  
    27.             n.NOTICE_TYPE!='25'</isEqual>  
    28.         <isEqual property="remittanceBank" compareValue="10" prepend=" AND ">  
    29.             n.NOTICE_TYPE!='63'</isEqual>  
    30.         <isEqual property="remittanceOnline" compareValue="10" prepend=" AND ">  
    31.             n.NOTICE_TYPE!='64'</isEqual>  
    32.     )row_ where rownum &lt;=1 ) where rownum_&gt;=0  
    33. </select>  

     2.Action

    Java代码  
    1. /** 
    2.  * 查询公告弹出 
    3.  * @return 
    4.  * @author wwy 
    5.  * @date 2011-10-13 下午13:35:11 
    6.  */  
    7. public void queryByOut(){  
    8.     try {  
    9.         PrintWriter out = this.getResponse().getWriter();  
    10.           
    11.         if(getUserId() != null){  
    12.             bussinessNotice = noticeService.selectSingleModelByOut("26",getUserId());     
    13.             if(bussinessNotice==null){  
    14.                 out.print("");  
    15.             }  
    16.             else{  
    17.                 out.print("{"noticeNum":""+bussinessNotice.getNoticeNum()+""}");  
    18.             }  
    19.         }else{  
    20.             out.print("");  
    21.         }  
    22.     } catch (Exception e) {  
    23.         log.error("弹出式公告查询失败" + e.fillInStackTrace());  
    24.     }  
    25. }  

     3.serviceImpl

    Java代码  
    1. public TBussinessNotice selectSingleModelByOut(String state,  
    2.         String bussinessId) {  
    3.     TBussinessNotice tbn = new TBussinessNotice();  
    4.     tbn.setBussinessId(bussinessId);  
    5.     tbn.setState("17");  
    6.     tbn.setNoticeShowType(state);  
    7.       
    8.     TBussinessSet bussinessSet = BussinessSetService.queryById(bussinessId);//设置状态,sqlMap根据状态isEqual判断  
    9.     tbn.setSaleBack(bussinessSet.getSaleBack());  
    10.     tbn.setRemittanceBank(bussinessSet.getRemittanceBank());  
    11.     tbn.setRemittanceOnline(bussinessSet.getRemittanceOnline());  
    12.       
    13.     return bussinessNoticeDao.selectSingleModelByOut(tbn);  
    14. }  

    4.frameTop.jsp

    Js代码  
    1. <script type="text/javascript">  
    2.     //弹出公告查询  
    3.     var autoNotice = setInterval(getNotice,1000*60);   
    4.     function getNotice(){  
    5.         clearInterval(autoNotice);  
    6.         $.ajax({  
    7.             type:'post',      
    8.             url:'Notice_queryByOut',  
    9.             dataType:'json',  
    10.             success:function(data){  
    11.                 if(data!=null){  
    12.                     $.hpDialog.open('Notice_detailByNotice?initLoadMethod=c&id='+data.noticeNum);  
    13.                 }else{  
    14.                     autoNotice = setInterval(getNotice,1000*60);  
    15.                 }  
    16.             }  
    17.         });  
    18.     }  
    19.     function noticeCallback(){  
    20.         getNotice();   
    21.     }  
    22. </script>  

     5.noticeDetail.jsp

    Html代码  
    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    3. <html xmlns="http://www.w3.org/1999/xhtml">  
    4. <head>  
    5. <title>公告明细</title>  
    6. <meta http-equiv="X-UA-Compatible" content="IE=7" />  
    7. <%@ include file="/cssBasePage.jsp"%>  
    8. <script type="text/javascript" src="<%=path %>/jsp/phone/interaction/notice/noticeDetail.js"></script>  
    9. </head>  
    10.   
    11. <body>  
    12. <form id="form1">  
    13. <div class="jf_tanchu">  
    14.     <div class="jf_tanchutit">${ bussinessNotice.noticeTitle}</div>  
    15.     <div class="jf_tanchubox">  
    16.         <div class="jf_tanchubox_right">  
    17.         公告类型:<v:dcolor code="${ bussinessNotice.noticeType}"/>&nbsp;&nbsp;&nbsp;&nbsp;  
    18.         发布时间:<fmt:formatDate value="${ bussinessNotice.createDate}" pattern="yyyy-MM-dd"/>  
    19.         </div>  
    20.         ${bussinessNotice.noticeInfo}  
    21.     </div>  
    22. </div>  
    23. <s:if test="bussinessNotice.noticeType=='25'||bussinessNotice.noticeType=='63'||bussinessNotice.noticeType=='64'">  
    24. <div>  
    25.     <input type="hidden" name="noticeType" value="${bussinessNotice.noticeType}"/>  
    26.     <input type="checkbox" id="isSelect" name="isSelect" value="${bussinessNotice.noticeType}" onclick="javascript:noTips();"/>  
    27.     <label for="isSelect">不再通知此类公告</label>  
    28. </div>  
    29. </s:if>  
    30. </form>  
    31. <div class="jf_tanchubot">  
    32.     <s:if test="initLoadMethod == "c" ">  
    33.         <hp:HpButton TJsClick="var win = $.dialog.open.origin;win.noticeCallback();$.dialog.close();" TValue="confirmed" id=""></hp:HpButton>  
    34.     </s:if>  
    35.     <s:else>  
    36.         <hp:HpButton TJsClick="$.dialog.close();" TValue="close" id=""></hp:HpButton>  
    37.     </s:else>  
    38. </div>  
    39. </body>  
    40. </html>  

     6.noticeDetail.js

    Js代码  
      1. function noTips(){  
      2.     var formParam = $("#form1").serialize();  
      3.     $.ajax({  
      4.         type:'post',      
      5.         url:'Notice_noTipsNotice',  
      6.         data:formParam,  
      7.         cache:false,  
      8.         dataType:'json',  
      9.         success:function(data){  
      10.         }  
      11.     });  
      12. }  
  • 相关阅读:
    SQL JOIN
    string.Empty, "" 和 null 三者的区别
    java JDBC
    java 自定义注解
    Spring Bean自动检测
    Spring Aware接口
    IObservable 接口
    CloseHandle()函数的使用
    [置顶] 记一次讲座与前辈的对话
    让用户关上门说话:覆盖全美6000个社区的邻居私密社交网站Nextdoor是如何壮大的?
  • 原文地址:https://www.cnblogs.com/doudouxiaoye/p/5680841.html
Copyright © 2011-2022 走看看