만약Mybatis
와光标
조회하면한글면100이면100“오라클”조회될이다。
대부분Mybatis에런로이많기光标
。이스가있다는사람들다이다。
쓴다.
물론 어자피 공식 설명서 봐도 되긴 하는데... s光标용법의번역안되어안되어...
대단하다...
一种
光标
提供与相同的结果清单
,除了它使用Iterator延迟获取数据。
해석하자면이굳...
光标
는清单
迭代器,迭代器和迭代器。
La,La懒La이뜻개발자라면개발자라면우를한줄기빛이나다나다。
존처럼기존처럼结果处理程序
인터페이스를우로우기를있는데있는데,光标
는清单
거다된거이점이있다는는。
@Repository
public interface PersonMapper {
// 그냥 리스트 불러올 때
清单<Person> selectPerson清单(Map<String, Object> params);
// Mybatis 3.2.4 이전까지 대용량 리스트 불러올 때
void selectPersonListHuge(Map<String, Object> params, ResultHandler handler);
// Mybatis 3.2.4 이후 대용량 리스트 불러올 때
Cursor<Person> selectPersonListLazy(Map<String, Object> params);
}
그렇다면사용법은가?Cursor
인터페이스는Iterable
확장하기확장하,对于
문에서前言
。다。 또한,잊지말아야可关闭
인터페이스도확장하기때문에,尝试
선언하거나,선언하거나기싫으면关()
。로닫아야다。 。사용법은다。
try (Cursor<Person> lazyList = mapper.selectPersonListLazy(params)) {
对于 (Person person : lazyList) {
// 여기에 Person 가지고 뭐 할겨?
}
}
Javadoc 을 참조하면 사실 별 거 없다.
그나마 유용한 메소드가 getCurrentIndex()
메소드인데, 현재 가져온 행 번호를 가져온다. 자바답게0부터시작한다.
자,소개는기까지。
아, 이건 내 경험인데, 내잘못인지 버그인지 모르겠지만, jdbc 로깅한답시고 추가한 log4jdbc 하고 연계했더니 Cursor
리턴은 되는데 항상 데이터 반환이 없다. 리스트가없다고.
어디쪽 문제인지 모르겠지만, log4jdbc
는 더 이상 개발이 없고, mybatis
로깅도 나쁘진 않기 때문에, 신규 프로젝트에 Mybatis 추가할 경우 log4jdbc
연계는 지양하는 게 좋을 것 같다.
거거거해제해주시면.
2020-03-23 업데이트
Cursor
의 올바른 사용법
위에log4jdbc
고고고고고고고고고고고고고있도도있해맸는데는는는는는。
즉,Cursor
사시,시다한는이다。 春天을
@Transactional // <- 이거 이거 이거 이거 이거 이거 이거 이거 이거 이거
public List<Person> getList() {
try (Cursor<Person> cursor = mapper.getPersonListByCursor()) {
for (Person person : cursor) {
// ...
}
}
return ...
}
이렇게@交易
어노테이션이라던가,交易模板
클래스또는PlatformTransactionManager.getTransaction(...)
...스레드작동한다는것이었다...
Spring Webflux的最新发布.........
게다가,상가상상상있거나있거나가가가for
。로등으것이다。 들어流
...로변환해서다던지...이안된내에서만다는이다。
밖으로빼내려면List
로돌리거나,아예List
로반환해야이다。
그래서反应堆
같이이용할이때는阻塞
。로대응해야다한이아쉬움다。
Mybatis在R2DBC上进行了下载,在R2DBC上进行了下载。
flu Webflux쓴다면DB연동의는다점이되겠다。 R2DBC단계고...