麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

Mybatis 中 Oracle 的拼接模糊查詢及用法詳解

2024-07-14 08:41:58
字體:
來源:轉載
供稿:網友

一、結論

這里先給大家看一下結論

Oracle 中,拼接模糊查詢的正確寫法

 SELECT A.USER_ID,      A.USER_NAME    FROM USER A      AND A.USER_NAME like concat(concat('%','w'),'%')      或者      AND A.USER_NAME like '%' || 'w' || '%'

Mybatis 中,拼接模糊查詢的正確寫法

 <select id="selectByName" resultMap="BaseResultMap">    SELECT A.USER_ID,      A.USER_NAME    FROM T_BASE_USER_INFO A      <if test="userName != null">        AND A.USER_NAME like '%' || #{userName} || '%'      </if>      或者      <if test="userName != null">        AND A.USER_NAME like concat(concat('%','${userName}'),'%')      </if>  </select>

注意 Mybatis 中,拼接模糊查詢的用法

,是將傳入的值當做字符串的形式。所以拼接的時候 #{userName} 默認自帶引號。例如: ${userName} 直接轉為 ‘zhen'。

,是將傳入的數據直接顯示生成sql語句。所以拼接的時候 
,是將傳入的數據直接顯示生成sql語句。所以拼接的時候
{userName} 沒有默認引號。例如:${userName} 直接轉為 zhen 。

二、技巧:

剛開始寫的時候一直報錯,報錯信息是這樣的:

    "message": "Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='userName', mode=IN, javaType=class java.lang.String, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.sql.SQLException: 無效的列索引",

我的寫法是這樣的:           

 <if test="_parameter != null">--         AND A.USER_NAME like CONCAT('%','#{userName}','%')          AND A.USER_NAME = #{userName}        </if><!--        <if test="userType != null">          AND A.USER_TYPE = #{userType}        </if>        <if test="mobilePhoneNo != null">          AND A.MOBILE_PHONE_NO like CONCAT('%','#{mobilePhoneNo}','%')        </if>        <if test="roleId != null">          AND B.ROLE_ID = #{roleId}                </if>-->

后來我徹底凌亂了,于是就從頭開始寫,結果就好了。

小結:

出現的報錯可能跟我之前寫了太多的if 判斷語句有關,于是先寫一個簡單的          

 <if test="userName != null">        AND A.USER_NAME like '%' || #{userName} || '%'      </if>

這個可以執行,其他再有什么條件加進來,稍微修改之后,都可以正常運行。          

 <if test="userName != null">        AND A.USER_NAME like concat(concat('%','${userName}'),'%')      </if>      <if test="userType != null">        AND A.USER_TYPE = #{userType}      </if>      <if test="mobilePhoneNo != null">        AND A.MOBILE_PHONE_NO like '%' || #{mobilePhoneNo} || '%'      </if>      <if test="baseRoleInfo.roleId != null">        AND B.ROLE_ID = #{baseRoleInfo.roleId}      </if>

總結

以上所述是小編給大家介紹的Mybatis 中 Oracle 的拼接模糊查詢,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产午夜精品一区二区三区四区 | 成人黄色小视频在线观看 | chengrenzaixian | 欧美 国产 综合 | 免费观看高清视频网站 | 一级做a爱性色毛片免费1 | 欧产日产国产精品v | 天天干干 | 操你逼 | av电影在线观看网址 | 国产精品麻豆一区二区三区 | 国产中文一区 | 亚洲成人入口 | 一本色道久久综合狠狠躁篇适合什么人看 | 色猫av| 九九热精品在线 | 欧美日韩一 | 黄色7777 | 中国毛片在线观看 | 午夜精品小视频 | 亚洲成人国产 | 欧美日韩大片在线观看 | 国产精品视频一区二区三区四区国 | 少妇一级淫片免费看 | 成人污在线 | 欧美亚洲一级 | 免费国产网站 | 国产成人综合在线视频 | 久久不射电影 | 国产精品久久国产精麻豆96堂 | 性少妇videosexfreexxx片 | 亚洲成人播放 | 一级毛片播放 | 国产精品一区二区三区在线看 | 黄色一级电影网 | 中文字幕国产亚洲 | 亚洲性综合网 | 欧美日韩手机在线观看 | 少妇一级淫片免费放播放 | 深夜小视频在线观看 | 黄片一级毛片 |