1. Metode de cartografiere suportate de mybatis
Metodele de mapare suportate de mybatis includ fișiere mapper.xml bazate pe XML și clase de interfață mapper bazate pe Java. Există patru adnotări principale pentru metodele de interfață: @Insert, @Delete, @Update și @Select
2. Cum să mapezi folosind adnotările interfeței
Următoarele experimente se bazează toate pe tabele t_user și sunt structurate astfel:
2.1 Creșterea @Insert
Există practic trei scheme pentru aceasta, și anume desemnarea manuală (stratul aplicației), cheia primară cu adunare automată (tabelul unic al stratului de date) și selecția cheii primare (tabelul multiplu al stratului de date).
1. Specifică manual cheia primară la nivelul aplicației
Metoda manuală nu tratează cheia primară diferit și îi va da o valoare cheii primare atunci când stratul de aplicație generează obiectul înainte de inserare, ceea ce nu diferă de câmpul normal când este introdusă.
În exemplul de mai sus, mybatis nu știe care câmp este cheia primară, iar id este câmpul cheii primare, dar nu este tratat diferit.
Rețineți că metoda #{username} este folosită User ca context curent, astfel încât, atunci când accesați atributele User, puteți scrie direct numele atributului.
2. Tabelul adaugă cheia primară
Cheia primară auto-incrementantă corespunde completării cheii primare în configurația XML, un exemplu simplu:
Folosește Option pentru a corespunde proprietăților setului de etichete select în XML, userGeneratordKeys pentru a indica că dorești să folosești o cheie primară auto-incrementantă și keyProperty pentru a specifica numele câmpului cheie primară.
Cheia primară auto-incrementantă folosește caracteristicile auto-incrementante ale basei de date subiacente.
3. Selectează cheia primară
Selectați cheia primară pentru a genera o valoare din stratul de date și folosiți această valoare ca valoare a cheii primare.
2.2 Șterge @Delete
Când ștergi, scrie condiția în valoarea adnotării @Delete și returnează un tip int ca numărul de înregistrări care au fost șterse cu succes.
2.3 Schimbare @Update
Când modifici, pur și simplu scrie instrucțiunea SQL în valoarea @Update și returnează un tip int pentru a indica numărul de linii de înregistrare modificate.
2.4 Verifică @Select
Interogarea este puțin mai complicată, deoarece interogarea implică cum să setezi câmpurile găsite pe obiect, iar de obicei există trei moduri:
1. Specifică manual un alias în instrucțiunea SQL pentru a se potrivi
Când scrii instrucțiuni SQL, atribuie manual un alias fiecărui câmp pentru a se potrivi cu atributele obiectului, ceea ce este potrivit în situații în care numele câmpului tabelului și numele atributului obiectului sunt foarte diferite și nu există multe câmpuri de tabel.
2. Folosirea transformării automate a coașei subliniate a mybatis
mybatis are o opțiune numită mapUnderscoreToCamelCase care se aplică atunci când numele câmpului din tabel este același cu numele atributului obiectului, dar diferența între scrierea subliniată și cea cu hump.
După configurarea mapUnderscoreToCamelCase, mybatis va încerca să convertească underscore-ul într-un hup când setează datele găsite în ResultSet la obiect, apoi va îmbina setul în față pentru a seta atributele.
Pornește conversia:
Apoi întreabă următoarea:
Privind rezultatul tipărit, atributele birth_day sunt populate în obiect:
3. Folosește ResultMap
Dacă numele câmpului tabelului și numele atributului obiectului nu sunt foarte asemănători și există multe câmpuri în tabel, ResultMap ar trebui folosit pentru adaptare.
@Results corespunde ResultMap în XML, iar tu poți specifica un id pentru el, care poate fi folosit pentru a-l referi în altă parte, de exemplu pentru a face referire la rezultatele de mai sus:
Folosiți @ResultMap pentru a face referință la un ResultMap existent, care poate fi definit în Java folosind @Results adnotări sau în XML folosind etichete resultMap.
2.5 Cod exemplu
User.java
UserMapper.java
3. Rezumat
Avantajele utilizării adnotărilor de interfață:
1. Este mai convenabil și mai rapid să scrii instrucțiuni de mapare
Dezavantaje ale utilizării adnotărilor de interfață:
1. Este potrivit pentru configurații relativ simple, iar interfața nu poate fi realizată când este prea complicată.
2. Incapacitatea de a folosi SQL dinamic, e cam de prost gust.
|