집 >데이터 베이스 >MySQL 튜토리얼 >오라클은 Mybatis를 결합하여 테이블에서 10개의 데이터를 얻습니다.
저는 이전에 mysql 및 informix 데이터베이스를 사용해 왔으며 테이블의 처음 10개 데이터를 확인하는 것은 매우 간단합니다. 이 기사에서는 테이블에서 필요한 10개의 데이터를 얻기 위해 Oracle 및 Mybatis의 관련 정보를 주로 소개합니다. 참고할 수 있어서 모두에게 도움이 되었으면 좋겠습니다.
원본:
select top * from student
물론 쿼리 조건을 추가하는 등 더 복잡하게 작성할 수도 있나요?
예를 들어, 점수가 80점보다 높은 상위 10명의 학생 정보를 쿼리합니다.
where 쿼리 조건의 추가 버전:
select top * from table where score > 80
하지만! ! 오라클에는 최고가 없습니다! ! ! ! 그렇다면 그것을 달성하는 방법은 무엇입니까?
글쎄, rownum을 사용하면 됩니다!
oracle의 원본 버전
select * from student where rownum < 10
위 내용은 복잡해 보이지 않습니다. . 하지만 여기에 질문이 있습니다. 여전히 80보다 큰 점수를 추가하려면 어떻게 해야 할까요?
오라클 초보자인 저에게는 정말 힘든 작업입니다. 방금 여기에 게시했는데, 이것이 일부 사람들의 노력을 덜어줄 수 있기를 바랍니다!
oracle에서 where 쿼리 조건
select * from( select rownum rn,A.* from student where score > 80) where rn < 10
버전을 추가했습니다. 위 코드를 간략하게 분석해 보세요. 실제로 80점 이상의 데이터를 Embedded sql 문을 통해 먼저 쿼리한 후, Embedded sql 쿼리 결과 중 처음 10개 데이터를 선택합니다.
마지막으로 mybatis 코드를 첨부할까요?
<select id="selectStudent" parameterType="hashmap" resultMap="BaseResultMap"> select * from ( select rownum rn, A.* from student A where STATUS = '99' and score <![CDATA[>]]> #{scores,jdbcType=INTEGER}) where rn <![CDATA[<=]]> #{number,jdbcType=INTEGER} </select>
위의 점수와 숫자는 모두 변수입니다
ps: mybatis는 Oracle 시퀀스를 가져와 동일한 값의 문제를 해결합니다.
<select id="getCode" resultType="java.lang.String"> select 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual </select>
위의 mybatis 코드는 항상 동일합니다. 호출 시 값 시퀀스 값, 관련 정보를 쿼리하여 mybatis의 캐시 문제인 것을 확인했습니다.
useCache="false" flushCache="false"
속성 추가:
<select id="getCode" resultType="java.lang.String" useCache="false" flushCache="false"> select 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual </select>
관련 권장 사항:
Oracle은 어떻게 변경합니까? 테이블스페이스의 데이터 파일 위치
오라클 데이터베이스 테이블의 필드 순서를 수정하는 방법
위 내용은 오라클은 Mybatis를 결합하여 테이블에서 10개의 데이터를 얻습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!