在 MyBatis 中,可以通過(guò)以下兩種方式來(lái)區(qū)分重載方法:
<select id="findUserById" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<select id="findUserByName" parameterType="string" resultType="User">
SELECT * FROM user WHERE name = #{name}
</select>
在上面的例子中,findUserById
和 findUserByName
是兩個(gè)重載方法,它們分別接受一個(gè)整數(shù)參數(shù)和一個(gè)字符串參數(shù)。在映射文件中,通過(guò) parameterType
屬性來(lái)指定參數(shù)的類(lèi)型,從而區(qū)分這兩個(gè)重載方法。
2. 通過(guò)不同的方法名來(lái)區(qū)分重載方法:如果有兩個(gè)重載方法,它們的方法名相同,但參數(shù)類(lèi)型不同,那么可以通過(guò)在方法名后面添加不同的參數(shù)類(lèi)型后綴來(lái)區(qū)分這兩個(gè)重載方法。例如,如果有兩個(gè)重載方法,一個(gè)接受一個(gè)整數(shù)參數(shù),另一個(gè)接受一個(gè)字符串參數(shù),那么可以這樣編寫(xiě):
<select id="findUserById" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<select id="findUserByName" parameterType="string" resultType="User">
SELECT * FROM user WHERE name = #{name}
</select>
在上面的例子中,findUserById
和 findUserByName
是兩個(gè)重載方法,它們的方法名相同,但參數(shù)類(lèi)型不同。在映射文件中,通過(guò)在方法名后面添加不同的參數(shù)類(lèi)型后綴來(lái)區(qū)分這兩個(gè)重載方法,例如 findUserById
和 findUserByName
。