List<Map<String,Object>> list = sqlSession.selectList("com.xxx.xxxMapper.execSql", selectParameter);privateCursor<Map<String,Object>> cursor =newListCursorAdapter<>(list);privateIterator<Map<String,Object>> cursorIterator = cursor.iterator();
importorg.apache.ibatis.cursor.Cursor;importorg.apache.ibatis.exceptions.PersistenceException;importorg.jetbrains.annotations.NotNull;importjava.util.Iterator;importjava.util.List;publicclassListCursorAdapter<T>implementsCursor<T>{privatefinalIterator<T> iterator;privateboolean isOpen =true;publicListCursorAdapter(List<T> list){this.iterator = list.iterator();}@OverridepublicbooleanisOpen(){return isOpen;}@OverridepublicbooleanisConsumed(){returnfalse;}@OverridepublicintgetCurrentIndex(){return0;}publicTgetCurrentValue(){if(!iterator.hasNext()){thrownewPersistenceException("Cursor is not on a valid row");}return iterator.next();}publicbooleannext(){return iterator.hasNext()&& iterator.next()!=null;}@Overridepublicvoidclose(){
isOpen =false;}@NotNull@OverridepublicIterator<T>iterator(){return iterator;}}