1、定義一個通用mapper
@Repository
public interface DynamicMapper extends BaseMapper {
@Select("${sql}" )
List<Map> dynamicSelect(@Param("sql") String sql);
@Insert("${sql}")
void dynamicInsert(@Param("sql") String sql);
@Update("${sql}")
void dynamicUpdate(@Param("sql") String sql);
@Delete("${sql}")
void dynamicDelete(@Param("sql") String sql);
@Select("${sql}")
@Options(resultSetType = ResultSetType.FORWARD_ONLY, fetchSize = 1000)
@ResultType(Map.class)
void dynamicSelectLargeData(@Param("sql") String sql, ResultHandler<Map> handler);
}
2、測試
@RestController
public class TestSearchLargeData {
@Autowired
private DynamicMapper dynamicMapper;
@GetMapping("/getLargeData")
public void getLargeData() {
String sql = "select * from m8j";
dynamicMapper.dynamicSelectLargeData(sql, new ResultHandler<Map>() {
@Override
public void handleResult(ResultContext<? extends Map> resultContext) {
Map resultObject = resultContext.getResultObject();
System.out.println(resultObject);
}
});
}
}