在mybatis框架中,写mapper接口时,是不可以进行方法的重载的;
@Mapper
public interface StationMapper extends BaseMapper<BxWellStation> {
@Update("update bx_well_station_status set warn_status=0 where station_id=#{stationId}")
void updateByStation(@Param("stationId") String stationId);
@Update("update bx_well_station_status set warn_status=0 where station_id=#{stationId} and id = #{id}")
void updateByStation(@Param("stationId") String stationId,@Param("id")String id);
}
上边的代码方法名相同、返回值一样、参数不一样符合java重载特性。在项目启动的时候不会有任何问题,在调用该方法的时候,你会发现sql组装异常,这是应该mybatis在进行sql映射xml文件的时候是根据方法名当id去映射的,第二个方法会把第一个方法覆盖,就会造成你想传入一个参数让调用第一个方法,但sql组装的确是第二个方法的sql;切记mybatis架构的@mapper不可以进行方法的重载的!!!