MyBatis中的參數(shù)映射有以下幾種方式:
使用@Param注解:在Mapper接口的方法參數(shù)中可以使用@Param注解指定參數(shù)的名稱(chēng),例如@Param(“name”) String userName,這樣在SQL語(yǔ)句中就可以直接引用該參數(shù)名。
使用Map類(lèi)型參數(shù):Mapper接口的方法可以接受一個(gè)Map類(lèi)型的參數(shù),在SQL語(yǔ)句中通過(guò)Map的key來(lái)引用參數(shù)值。
使用POJO對(duì)象作為參數(shù):Mapper接口的方法可以接受一個(gè)POJO對(duì)象作為參數(shù),MyBatis會(huì)根據(jù)對(duì)象的屬性名自動(dòng)映射到SQL語(yǔ)句中的參數(shù)。
使用#{}和${}占位符:在SQL語(yǔ)句中可以使用#{}和${}占位符來(lái)引用參數(shù),#{}會(huì)將參數(shù)值以預(yù)編譯的方式傳遞給數(shù)據(jù)庫(kù),而${}會(huì)將參數(shù)值直接拼接到SQL語(yǔ)句中。
使用參數(shù)索引:在SQL語(yǔ)句中使用#{0}、#{1}等參數(shù)索引來(lái)引用方法參數(shù),這種方式比較少用,不推薦使用。
總的來(lái)說(shuō),使用@Param注解和POJO對(duì)象作為參數(shù)是比較常用的方式,可以提高代碼的可讀性和維護(hù)性。