ホームページ >データベース >mysql チュートリアル >Oracle は Mybatis を組み合わせてテーブルから 10 個のデータを取得します

Oracle は Mybatis を組み合わせてテーブルから 10 個のデータを取得します

小云云
小云云オリジナル
2017-12-11 14:38:572710ブラウズ

私は以前に mysql と infomix データベースを使用していましたが、テーブル内の最初の 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初心者の私にとって、それは本当に面倒です。一部の人たちの労力を節約できることを願って、ここに投稿しました。

oracle は where クエリ条件のバージョンを追加しました

select * from(
  select rownum rn,A.* from student where score > 80) 
where rn < 10

上記のコードを簡単に分析してください。実際、スコアが 80 を超えるデータは、最初に埋め込み SQL ステートメントを通じてクエリされ、次に埋め込み 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データベーステーブルのフィールドの順序を変更する方法

Oracleクエリテーブル名とテーブル列名

以上がOracle は Mybatis を組み合わせてテーブルから 10 個のデータを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。