>  기사  >  데이터 베이스  >  오라클은 Mybatis를 결합하여 테이블에서 10개의 데이터를 얻습니다.

오라클은 Mybatis를 결합하여 테이블에서 10개의 데이터를 얻습니다.

小云云
小云云원래의
2017-12-11 14:38:572654검색

저는 이전에 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 = &#39;99&#39;
  and score <![CDATA[>]]> #{scores,jdbcType=INTEGER}) 
  where rn <![CDATA[<=]]> #{number,jdbcType=INTEGER}
 </select>

위의 점수와 숫자는 모두 변수입니다

ps: mybatis는 Oracle 시퀀스를 가져와 동일한 값의 문제를 해결합니다.

<select id="getCode" resultType="java.lang.String">
  select &#39;TRD&#39;||to_char(sysdate,&#39;yyyymmdd&#39;)||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, &#39;0&#39;) code from dual
</select>

위의 mybatis 코드는 항상 동일합니다. 호출 시 값 시퀀스 값, 관련 정보를 쿼리하여 mybatis의 캐시 문제인 것을 확인했습니다.

useCache="false" flushCache="false" 속성 추가:

<select id="getCode" resultType="java.lang.String" useCache="false" flushCache="false">
select &#39;TRD&#39;||to_char(sysdate,&#39;yyyymmdd&#39;)||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, &#39;0&#39;) code from dual
</select>

관련 권장 사항:

Oracle은 어떻게 변경합니까? 테이블스페이스의 데이터 파일 위치

오라클 데이터베이스 테이블의 필드 순서를 수정하는 방법

oracle 쿼리 테이블 이름 및 테이블 열 이름

위 내용은 오라클은 Mybatis를 결합하여 테이블에서 10개의 데이터를 얻습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.