저는 MS SqlServer DB에서 데이터를 가져 오기위한 스프링 JdbcTemplate
인터페이스를 사용하고 있습니다. 문서에서 모든 검색어에 대해 한도를 설정하는 setMaxRows()
방법이 있지만 선택 항목 만 제한하려면 어떻게해야합니까?Spring JdbcTemplate : 선택한 행을 제한하는 방법?
"구성 가능한"방식으로 특정 호출 된 쿼리에 대해서만 제한을 설정하는 방법이 있습니까?
저는 MS SqlServer DB에서 데이터를 가져 오기위한 스프링 JdbcTemplate
인터페이스를 사용하고 있습니다. 문서에서 모든 검색어에 대해 한도를 설정하는 setMaxRows()
방법이 있지만 선택 항목 만 제한하려면 어떻게해야합니까?Spring JdbcTemplate : 선택한 행을 제한하는 방법?
"구성 가능한"방식으로 특정 호출 된 쿼리에 대해서만 제한을 설정하는 방법이 있습니까?
제한에 직접 쿼리를 적용하여 특정 쿼리의 결과 집합을 제한 할 수 있습니다. 예를 들어 LIMIT
을 지원하는지 DB 공급 업체의 설명서를 참조하십시오. MySQL을
예 : SELECT * FROM EMPLOYEE LIMIT 10
일부 SQL 기반 쿼리 언어 (더비는) LIMIT
키워드를 지원하지 않습니다. 따라서 검색어에 LIMIT을 직접 사용할 수 없습니다. 봄 JDBC 템플릿을 사용하여 우리는 setMaxRows(Integer intvalue)
jdbcTemplate.setMaxRows(1);
쿼리 당신은 수도 사용자 제한 키워드를 통해 필요한 행의 최대 수를 설정할 수 있습니다. 응용 프로그램 제한의 경우 쿼리
select * from FileShare limit 3 offset 3
아래 참조 및 쿼리
@Autowired
private JdbcTemplate template;
public JdbcTemplate getTemplate() {
return HibernateUtil.getJdbcTemplate();
}
public List<FileShare> getAllSharedFiless(int limit,int offset)
throws ShareMeException {
String query="select * from FileShare limit ? offset ?";
return getTemplate().query(query,
new SharedFilesRowMapper(),
new Object[]{limit,offset});
}
다음
FileShare
아래에 사용자가 동적으로 사용을 할당 할 수있다 옵셋 테이블 이름이고 SharedFilesRowMapper
은 RowMapper의 테이블에서 목록 행입니다.
이러한 명령문에 대해 자신의 PreparedStatementCreator를 사용하고 준비된 명령문을 작성할 때 Statement.setMaxRows()를 호출하는 것은 어떻습니까? –
@a_horse_with_no_name 좋은 아이디어 인 것 같습니다. PreparedStatementCreator'를 사용하는 예제를 제공 할 수 있습니까? – davioooh
저는 스프링에 익숙하지 않습니다. 그렇지 않으면 예제를 사용하여 대답을 추가했을 것입니다.) –