2016-07-16 12 views
0

ich einige Probleme in mapper.xml vom Frühjahr Rahmen habeMysql im Frühjahr Rahmen MySQLSyntaxErrorException

es gescheitert ist:

Sie in der Bedienungsanleitung für die richtige Syntax zu Ihrer MySQL-Server-Version entspricht in der Nähe zu verwenden 'where ut.catalog_id = 1 and ut.title like CONCAT('%','d','%')' in Zeile 4

Code:

<select id="tListSearch" resultType="TalentBoardVO"> 
    select * 
    from user_talents ut 
    left outer join catalog c 
    on ut.catalog_id = c.id 

    <include refid="search"></include> 

    order by ut.id desc 
    limit #{pageStart}, #{perPageNum} 
</select> 
diese

ist inclue Tag

<sql id="search"> 
    <if test="searchType != null"> 

     <if test="searchType == 'g'.toString()"> 
      where ut.catalog_id = 1 
      and ut.title like CONCAT('%', #{keyword}, '%') 
     </if> 

Antwort

0

Es sein werden viel besser, wenn Sie uns Ihre ganze SQL-Abfrage anzeigen.

Wenn Sie MyBatis Framework verwenden, können Sie dies tun. Es empfiehlt sich, 2 Variablen zu trennen, die in der WHERE-Anweisung verglichen werden sollen.

<sql id ="search"> 
    <where> 
     <if test ="idCatalog" != null"> 
      AND ut.catalog_id = #{idCatalog} 
     </if> 
     <if test="searchType != null"> 
      <bind name="searchTypeLike" value="'%' + searchType + '%'" /> 
      AND ut.title LIKE #{searchTypeLike} 
     </if> 
    </where> 
</sql>