Heim > Datenbank > MySQL-Tutorial > Hauptteil

Oracle kombiniert Mybatis, um 10 Daten aus der Tabelle zu erhalten

小云云
Freigeben: 2017-12-11 14:38:57
Original
2646 Leute haben es durchsucht

Ich habe zuvor MySQL- und Informix-Datenbanken verwendet. Es ist sehr einfach, die ersten 10 Daten in der Tabelle nachzuschlagen: In diesem Artikel werden hauptsächlich die relevanten Informationen von Oracle und Mybatis vorgestellt, um die 10 Daten aus der Tabelle zu implementieren Ich muss darauf verweisen. Ich hoffe, es kann jedem helfen.

Originalversion:

select top * from student
Nach dem Login kopieren


Natürlich können wir es auch komplizierter schreiben, Fügen Sie beispielsweise einige zusätzliche Abfragebedingungen hinzu?

Fragen Sie beispielsweise die Top-10-Studenteninformationen mit einer Punktzahl von mehr als 80 Punkten ab.

Version der Where-Abfragebedingungen hinzugefügt:

select top * from table where score > 80
Nach dem Login kopieren

Aber! ! Es gibt kein Top in Oracle! ! ! ! Wie kann man es erreichen?

Nun, Sie können Rownum verwenden!

Die Originalversion in Oracle

select * from student where rownum < 10
Nach dem Login kopieren

Das Obige scheint nichts Kompliziertes zu sein. . Aber hier stellt sich die Frage: Was ist, wenn wir immer noch eine Punktzahl von mehr als 80 hinzufügen möchten?

Für mich, einen Oracle-Anfänger, ist es wirklich mühsam. Ich habe es gerade hier gepostet, in der Hoffnung, dass es einigen Leuten etwas Mühe erspart!

Oracle hat eine Version der Where-Abfragebedingungen hinzugefügt

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

Analysieren Sie kurz den obigen Code. Tatsächlich werden die Daten mit einer Punktzahl von mehr als 80 zuerst über die eingebettete SQL-Anweisung abgefragt und dann werden die ersten 10 Daten im eingebetteten SQL-Abfrageergebnis ausgewählt

Zum Schluss wird der Mybatis-Code angehängt?

<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>
Nach dem Login kopieren

Die oben genannten Werte und Zahlen sind Variablen

ps: mybatis übernimmt die Oracle-Sequenz, die Werte ​​sind die gleichen Problembehandlungen

<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>
Nach dem Login kopieren

Der obige Mybatis-Code erhält beim Aufruf von Check immer den Wert derselben Sequenz die relevanten Informationen, um herauszufinden, ob es sich um ein Caching-Problem bei Mybatis handelt:

plus das useCache="false" flushCache="false" -Attribut:

<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>
Nach dem Login kopieren

Verwandte Empfehlungen:

Wie ändert Oracle den Datendateispeicherort des Tabellenbereichs?

Wie ändert man die Reihenfolge der Felder in der Oracle-Datenbanktabelle?

Oracle-Abfrage Tabellenname und Tabellenspaltenname

Das obige ist der detaillierte Inhalt vonOracle kombiniert Mybatis, um 10 Daten aus der Tabelle zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage