W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
答:不能重載,方法名對應(yīng)的 mapper.xml 文件里的一個 id,這個與方法名對應(yīng),系統(tǒng)會根據(jù) namespace+id 找到對應(yīng)的方法對應(yīng)。
Dao 接口即 Mapper 接口。接口的全限名,就是映射文件中的 namespace 的值;接口的方法名,就是映射文件中 Mapper 的 Statement 的 id 值;接口方法內(nèi)的參數(shù),就是傳遞給 sql 的參數(shù)。Mapper 接口是沒有實現(xiàn)類的,當(dāng)調(diào)用接口方法時,接口全限名+方法名拼接字符串作為 key 值,可唯一定位一個 MapperStatement。在 Mybatis 中,每一個、、、標(biāo)簽,都會被解析為一個MapperStatement 對象。
舉例:com.mybatis3.mappers.StudentDao.findStudentById,可以唯一找到 namespace 為 com.mybatis3.mappers.StudentDao 下面 id 為findStudentById 的 MapperStatement。
Mapper 接口里的方法,是不能重載的,因為是使用 全限名+方法名 的保存和尋找策略。Mapper 接口的工作原理是 JDK 動態(tài)代理,Mybatis 運行時會使用 JDK動態(tài)代理為 Mapper 接口生成代理對象 proxy,代理對象會攔截接口方法,轉(zhuǎn)而執(zhí)行 MapperStatement 所代表的 sql,然后將 sql 執(zhí)行結(jié)果返回。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: