현재 OFBiz 기반 ERP의 배포에서 다음과 같은 문제가 발생했습니다. 프레임 워크의 일부 코드는 resultSet.last()를 호출하여 결과 집합의 총 행을 확인합니다. Oracle JDBC Driver v11 및 v10을 사용하면 클라이언트 메모리의 모든 행을 캐시하려고 시도하여 힙 공간이 충분하지 않기 때문에 JVM이 손상됩니다.Oracle은 JDBC를 통해 서버 측 스크롤 가능 커서를 지원합니까?
조사한 후에 Oracle JDBC가 서버 대신 클라이언트 측에서 스크롤 가능한 커서를 캐시를 사용하여 구현하는 것으로 보입니다. 완료) (너무 많이 소요되는 문제가 해결되면, DataDirect의 드라이버를 사용하지만 통화가 resultset.last 할 것으로 보인다 따라서 응용 프로그램 서버에서 JDBC를 통해 화면 이동 커서를 implemente 수있는 방법이 거래
를 중단 오라클은 datadirect 드라이버를 의지하지 않고 있습니까?
그리고 주어진 resultSet의 길이를 가장 빨리 알 수있는 방법은 무엇입니까 ?? 사전에
감사 이스마엘
나는 먼저 탄젠트 질문을 할 것이다. 데이터와 결과 집합의 크기가 동시에 필요하거나 행 개수를 찾기 위해 COUNT (*) 형식 쿼리를 수행 할 수 있습니까? 당신은 정말로 많은 수의 행을 필요로합니까, 프로그램이 실제로 필요하지 않을 때 페이지 매김을위한 총 행 수를 얻는 매우 비싼 연산을하는 곳을 너무 많이 보았습니다. – Gandalf
페이지 매김 스키마에서 페이지 수를 결정해야합니다. last의 사용을 피하기 위해 노력하고 있으며, iterator next() 메소드를 사용하여 null을 검사하여 currentIndex를 계산합니다. last() 메서드를 사용하지 않고 페이지 수를 빠르게 알 수 있습니까? 이 문제를 해결하려면 동일한 조건의 COUNT 쿼리를 실행 한 다음 데이터에 대한 쿼리를 수행하는 것입니다. – Ismael
사용자가 페이지 수를 알아야합니까? 사용자가 마지막 페이지로 바로 이동하려는 올바른 사용자 사례가 있습니까? 우리는 일반적으로 한 페이지에 대해 더 많은 항목을 요구합니다. 그런 다음 해당 항목이 존재하면 다음 페이지를 가져 오기위한 "다음"페이지에 대한 링크를 넣습니다. 데이터에 정렬 할 수있는 순서가 있다고 가정합니다. – Gandalf