【JavaEE】之MyBatis的ParameterType的使用


  在MyBatis的Mapper.xml文件中,參數的表示方法有兩種:一種是使用 “#{XXX}” 的方式表示的,另一種是使用 “${XXX}” 的方式表示的。今天來介紹以下這兩種方式的不同之處。

 

1、#{XXX}

   “#{XXX}” 是用來表示變量占位符,即將這個變量注入到SQL語句中。這里的變量可以是普通類型的變量(int、java.lang.String、long等),也可以是自定義POJO類中的某個屬性(如name、sex等)。不管是普通類型還是POJO,只需要記住一點,這是用作一個完全獨立的變量。

  一個例子的代碼如下:

<mapper namespace="test">
    <select id="findEmployeeById" parameterType="int" resultType="com.itgungnir.hellomybatis.bean.Employee">
        SELECT * FROM EMP WHERE empno=#{id}
    </select>
</mapper>

  這里就是說,在這個SQL語句中將注入一個int類型的變量,作為查詢條件中empno的查詢條件注入。

 

2、${XXX}

  “${XXX}” 是用來表示字符串拼接的占位符。當需要在SQL語句中進行字符串的拼接時,就需要用到 “${XXX}” 符號。

  一個例子的代碼如下:

<select id="findEmployeeByName" parameterType="java.lang.String" resultType="com.itgungnir.hellomybatis.bean.Employee">
    SELECT * FROM EMP WHERE ename LIKE '%${value}%'
</select>

  這里就是說,在這個SQL語句中將注入一個String類型的變量,作為ename的模糊查詢條件。由於這里是使用了字符串的拼接('%%' 符號中間夾着我們注入的字符串),因此必須使用 “${XXX}” 符號。

  這里還需要注意一點,如果parameterType中傳入的是一個自定義的POJO類型的對象,那么我們在使用 “${XXX}” 符號拼接字符串的時候可以使用POJO中的屬性名,如 “${name}” ;而如果我們使用的是簡單類型,如int、java.lang.String等類型,那么就只能使用 “${value}” 。


免責聲明!

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



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