MyBatis 模糊查詢


問題描述

編寫SQL,實現根據業務名稱,模糊查詢業務信息。

 

解決方案

方案1:SQL里實現

<!-- 通過 projectName 模糊查詢數據 -->
    <select id="findByProjectName" parameterType="String" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from project
        where
        <!-- project_name like '%'||#{projectName}||'%' 查詢的是全部信息-->
        <!-- project_name like '%#{projectName}%' 報錯 -->
        <!-- project_name like '%"#{projectName}"%' 報錯-->
        <!-- project_name like '%'||${projectName}||'%' -->
        <!-- project_name like '%${projectName}%' -->
        project_name like CONCAT(CONCAT('%',#{projectName}),'%')
    </select>

【說明】已測試驗證,除了下面的這種方式,可以實現模糊查詢

project_name like CONCAT(CONCAT('%',#{projectName}),'%')

其余被注釋掉的幾種寫法,均不可以實現!!!

 

方案2:Java代碼里預處理

如果在Java代碼里事先處理:

List<ProjectEntity> entityList = projectBiz.findByProjectName("%" + projectName + "%");

 

SQL可以使用下面的方式:

<!-- 通過 projectName 模糊查詢數據 -->
    <select id="findByProjectName" parameterType="String" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from project
        where
        project_name like #{projectName}
    </select>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM