ibatIS中的isNotNull、isEqual、isEmpty

來源:互聯網
上載者:User

isNull判斷property欄位是否是null,用isEmpty更方便,包含了null和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.         功能描述

使用者可自行設定部分非重要彈出公告的設定。

2.         功能需求

1)         允許使用者自行屏蔽“返銷公告”,“銀行存款通知”,“線上存款通知”三種類型公告。

2)         可在以上三種公告彈出頁面上使用複選框設定不再通知此類公告。

3.         介面需求

1)         彈出公告頁:

在“返銷公告”( 25 ),“銀行存款通知”( 63 )及“線上存款通知”( 64 )三種類型公告頁面上增加複選框“不再彈出此類公告”。

2)         公告提示設定:

可直接對以上三種公告進行屏蔽設定(開啟 10| 關閉11)。

4.         商務程序

 

5.         邏輯需求

使用者儲存屏蔽狀態儲存於 t_bussiness_set 中的“返銷公告屏蔽”( sale_back ),“銀行存款通知”( remittance_bank ),“線上存款通知”( remittance_online )欄位。

6.         效能需求

 

7.         相關模組

 

8.         資料庫相關表

1)         T_bussiness_set                                  商戶設定表

2)         T_notice                                                 公告表

 

1.sqlMap

<select id="querySingleModelByOut"  parameterClass="com.hanpeng.base.phone.model.TBussinessNotice" resultClass="com.hanpeng.base.phone.model.TBussinessNotice">select * from (select row_.*, rownum rownum_ from (SELECTi.NOTICE_NUM  as noticeNum ,i.BUSSINESS_ID  as bussinessId ,i.STATE  as state ,i.READ_DATE  as readDate ,n.NOTICE_TITLE as noticeTitle ,n.NOTICE_INFO as noticeInfo ,n.CREATE_DATE as createDate ,n.EMPLOYEE_ID as employeeId ,n.NOTICE_TYPE as noticeType ,n.NOTICE_SHOW_TYPE as noticeShowType ,n.FINISH_DATE as finishDate ,n.PUBLISH_DATE as publishDate FROM  T_BUSSINESS_NOTICE i left join T_NOTICE n on n.NOTICE_NUM = i.NOTICE_NUM WHEREn.PUBLISH_DATE <= sysdate AND n.FINISH_DATE >= sysdate<isNotEmpty prepend=" AND " property="bussinessId"> i.BUSSINESS_ID = #bussinessId# </isNotEmpty><isNotEmpty prepend=" AND " property="state"> i.STATE = #state# </isNotEmpty><isNotEmpty prepend=" AND " property="noticeShowType"> n.NOTICE_SHOW_TYPE = #noticeShowType# </isNotEmpty><isEqual property="saleBack" compareValue="10" prepend=" AND ">n.NOTICE_TYPE!='25'</isEqual><isEqual property="remittanceBank" compareValue="10" prepend=" AND ">n.NOTICE_TYPE!='63'</isEqual><isEqual property="remittanceOnline" compareValue="10" prepend=" AND ">n.NOTICE_TYPE!='64'</isEqual>   )row_ where rownum <=1 ) where rownum_>=0</select>

2.Action

/** * 查詢公告彈出 * @return * @author wwy * @date 2011-10-13 下午13:35:11 */public void queryByOut(){try {PrintWriter out = this.getResponse().getWriter();if(getUserId() != null){bussinessNotice = noticeService.selectSingleModelByOut("26",getUserId());if(bussinessNotice==null){out.print("");}else{out.print("{\"noticeNum\":\""+bussinessNotice.getNoticeNum()+"\"}");}}else{out.print("");}} catch (Exception e) {log.error("彈出式公告查詢失敗" + e.fillInStackTrace());}}

 3.serviceImpl

public TBussinessNotice selectSingleModelByOut(String state,String bussinessId) {TBussinessNotice tbn = new TBussinessNotice();tbn.setBussinessId(bussinessId);tbn.setState("17");tbn.setNoticeShowType(state);TBussinessSet bussinessSet = BussinessSetService.queryById(bussinessId);//設定狀態,sqlMap根據狀態isEqual判斷tbn.setSaleBack(bussinessSet.getSaleBack());tbn.setRemittanceBank(bussinessSet.getRemittanceBank());tbn.setRemittanceOnline(bussinessSet.getRemittanceOnline());return bussinessNoticeDao.selectSingleModelByOut(tbn);}

4.frameTop.jsp

<script type="text/javascript">//彈出公告查詢var autoNotice = setInterval(getNotice,1000*60); function getNotice(){clearInterval(autoNotice);$.ajax({type:'post',url:'Notice_queryByOut',dataType:'json',success:function(data){if(data!=null){$.hpDialog.open('Notice_detailByNotice?initLoadMethod=c&id='+data.noticeNum);}else{autoNotice = setInterval(getNotice,1000*60);} }});}function noticeCallback(){getNotice(); }</script>

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.