在mybatis中使用mapper進(jìn)行if條件判斷
在使用mybatis框架中mapper文件有自動(dòng)生成,但有時(shí)需要自己添加sql語句進(jìn)行開發(fā),當(dāng)遇到需要使用 if進(jìn)行條件判斷的時(shí)候該怎么寫?
查詢sql語句如下:
<select parameterType='com.pojo.QueryDetailReq' resultType='com.pojo.MxDataInfo'> select * from db_trd.tb_trd_secu_order where order_status=6 <if test='channelNo!= null' > and channel_no = #{channelNo,jdbcType=INTEGER} </if> <if test='reportNo!=null' > and report_no = #{reportNo,jdbcType=INTEGER} </if> <if test='companyNo!= null' > and company_no = #{companyNo,jdbcType=VARCHAR} </if> <if test='orderNo!=null' > and order_no = #{orderNo,jdbcType=INTEGER} </if> <if test='stockCode!=null' > and stock_code = #{stockCode,jdbcType=VARCHAR} </if> </select>語句解析:
1、if語句的格式 ;
2、test中的字段 為parameterType中 com.pojo.QueryDetailReq 的對(duì)象 (入?yún)ⅲ?/p>
3、resultType 為返回查詢數(shù)據(jù)對(duì)象 (結(jié)果集)
補(bǔ)充:mabatis mapper文件中 使用if條件插入字段和數(shù)據(jù)
有時(shí)候我們插入數(shù)據(jù)庫數(shù)據(jù)的時(shí)候,插入字段都是不確定的,那么我們也可以用if條件來過濾一些字段
廢話不多說,直接上代碼
<insert parameterType='hashmap'> insert into t_order <trim prefix='(' suffix=')' suffixOverrides=','> <if test='orderNo != null'> orderNo, </if> <if test='serviceName != null'> serviceName, </if> <if test='idcard != null'> idcard, </if> <if test='name != null'> name, </if> <if test='requestData != null'> requestData, </if> <if test='responseData != null'> responseData, </if> <if test='status != null'> status, </if> <if test='updatedTime != null'> updatedTime, </if> <if test='completionTime != null'> completionTime, </if> <if test='bae007 != null'> bae007, </if> <if test='operId != null'> operId, </if> <if test='operName != null'> operName, </if> <if test='remark != null'> remark, </if> </trim> <trim prefix='values (' suffix=')' suffixOverrides=','> <if test='orderNo != null'> #{orderNo}, </if> <if test='serviceName != null'> #{serviceName}, </if> <if test='idcard != null'> #{idcard}, </if> <if test='name != null'> #{name}, </if> <if test='requestData != null'> #{requestData}, </if> <if test='responseData != null'> #{responseData}, </if> <if test='status != null'> #{status}, </if> <if test='updatedTime != null'> #{updatedTime}, </if> <if test='completionTime != null'> #{completionTime}, </if> <if test='bae007 != null'> #{bae007}, </if> <if test='operId != null'> #{operId}, </if> <if test='operName != null'> #{operName}, </if> <if test='remark != null'> #{remark}, </if> </trim> </insert>
經(jīng)過測(cè)試,是可以實(shí)現(xiàn)的。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. MYSQL數(shù)據(jù)庫存文本轉(zhuǎn)存數(shù)據(jù)庫問題2. Microsoft Office Access修改代碼字體大小的方法3. MySQL存儲(chǔ)過程例子(包含事務(wù)、參數(shù)、嵌套調(diào)用、游標(biāo)循環(huán)等)4. Microsoft Office Access隱藏和顯示字段的方法5. MYSQL(電話號(hào)碼,身份證)數(shù)據(jù)脫敏的實(shí)現(xiàn)6. Access中批量替換數(shù)據(jù)庫內(nèi)容的兩種方法7. MariaDB中1045權(quán)限錯(cuò)誤導(dǎo)致拒絕用戶訪問的錯(cuò)誤解決方法8. Window7安裝MariaDB數(shù)據(jù)庫及系統(tǒng)初始化操作分析9. SQLite3中的日期時(shí)間函數(shù)使用小結(jié)10. SQLite3 命令行操作指南
