Maison >base de données >tutoriel mysql >Oracle combine Mybatis pour obtenir 10 éléments de données de la table
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
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
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
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
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 = '99' and score <![CDATA[>]]> #{scores,jdbcType=INTEGER}) where rn <![CDATA[<=]]> #{number,jdbcType=INTEGER} </select>
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 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual </select>
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 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual </select>
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!