Maison > base de données > tutoriel mysql > le corps du texte

Oracle combine Mybatis pour obtenir 10 éléments de données de la table

小云云
Libérer: 2017-12-11 14:38:57
original
2647 Les gens l'ont consulté

J'ai déjà utilisé des bases de données mysql et informix. Il est très simple de rechercher les 10 premières données du tableau : cet article présente principalement les informations pertinentes d'Oracle et de Mybatis pour implémenter les 10 données des amis qui. j'en ai besoin, je peux y faire référence. J'espère que cela pourra aider tout le monde.

Version originale :

select top * from student
Copier après la connexion


Bien sûr, on peut aussi l'écrire de manière plus compliquée, Par exemple, ajouter des conditions de requête supplémentaires ?

Par exemple, interrogez les 10 principales informations sur les étudiants avec des scores supérieurs à 80 points.

Version ajoutée des conditions de requête Where :

select top * from table where score > 80
Copier après la connexion

Mais ! ! Il n'y a pas de top dans Oracle ! ! ! ! Alors comment y parvenir ?

Eh bien, vous pouvez utiliser rownum !

La version originale dans Oracle

select * from student where rownum < 10
Copier après la connexion

Il ne semble y avoir rien de compliqué à propos de ce qui précède. . Mais voici la question : que se passe-t-il si nous voulons quand même ajouter un score supérieur à 80 ?

Pour moi, débutant en Oracle, c'est vraiment laborieux. Je viens de le poster ici, en espérant que cela puisse épargner des efforts à certaines personnes !

Oracle a ajouté une version des conditions de requête Where

select * from(
  select rownum rn,A.* from student where score > 80) 
where rn < 10
Copier après la connexion

Analysez brièvement le code ci-dessus. En fait, les données avec un score supérieur à 80 sont d'abord interrogées via l'instruction SQL intégrée, puis les 10 premières données du résultat de la requête SQL intégrée sont sélectionnées

Enfin, le code mybatis est joint ?

<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>
Copier après la connexion

Les scores et le nombre ci-dessus sont des variables

ps : mybatis prend la séquence Oracle, les valeurs ​​sont les mêmes Gestion des problèmes

<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>
Copier après la connexion

Le code mybatis ci-dessus obtient toujours la valeur de la même séquence lorsqu'il est appelé Check. les informations pertinentes pour le savoir C'est un problème de mise en cache avec mybatis :

plus l'attribut 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>
Copier après la connexion

Recommandations associées :

Comment Oracle modifie-t-il l'emplacement du fichier de données de l'espace table

Comment modifier l'ordre des champs dans la table de la base de données Oracle

Requête Oracle Nom de la table et nom de la colonne de la table

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal