package com.lunhan.xxx.repository.mapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.lunhan.xxx.entity.dto.search.SearchTestInfo; import com.lunhan.xxx.repository.BasicMapper; import com.lunhan.xxx.repository.po.TestInfoPO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @Mapper public interface TestInfoMapper extends BasicMapper<TestInfoPO> { // #{param}:会进行预编译,而且进行类型匹é…,最åŽè¿›è¡Œå˜é‡æ›¿æ¢ï¼Œæ‹¬å·ä¸å¯ä»¥æ·»åŠ æ˜ å°„ç±»åž‹å¦‚ // @Select( // "<script>" + // "select * from student where id= #{param,javaType=int,jdbcType=NUMERIC}" + // "</script> " // ) // ${param}:$åªæ˜¯åªæ˜¯ç®€å•çš„å—符串拼接,è¦ç‰¹åˆ«å°å¿ƒsql注入问题,对应éžå˜é‡éƒ¨åˆ†ï¼Œåªèƒ½ç”¨$。$æ–¹å¼ä¸€èˆ¬ç”¨äºŽä¼ 入数æ®åº“对象,比如这ç§group by å—æ®µ ,order by å—æ®µï¼Œè¡¨åï¼Œå—æ®µåç‰æ²¡æ³•使用å ä½ç¬¦çš„就需è¦ä½¿ç”¨${param} @Select("select * from test_info where id = #{id}") TestInfoPO testGet(Long id); @Select("select * from test_info where id = #{userName}") TestInfoPO testGet2(String userName); @Select("select * from test_info where status = #{ew.status}") TestInfoPO testGet3(@Param(Constants.WRAPPER) SearchTestInfo search); @Select("select * from test_info where status = #{search.status}") TestInfoPO testGet4(@Param("search") SearchTestInfo search); }