1. Mybatis által támogatott leképezési módszerek
A mybatis által támogatott leképezési módszerek között mapper.xml xml alapú fájlok és java alapú mapper interfész osztályok találhatók. Négy fő interfész módszer annotáció létezik: @Insert, @Delete, @Update és @Select
2. Hogyan térképezzük le interfész annotációkat használva
Az alábbi kísérletek mind t_user táblázaton alapulnak, és a következőképpen vannak felépítve:
2.1 Növelje @Insert
Erre alapvetően három séma létezik: manuális jelölés (alkalmazásréteg), önadó elsődleges kulcs (adatréteg egyetlen táblázat), és elsődleges kulcs kiválasztása (adatréteg többszörös tábla).
1. Manuálisan megadni az elsődleges kulcsot az alkalmazási rétegen
A manuális módszer nem kezeli másként az elsődleges kulcsot, és akkor ad az elsődleges kulcsnak, amikor az alkalmazás rétege generálja az objektumot a behelyezés előtt, ami nem sokban különbözik a normál mezőtől a beillesztéskor.
A fenti példában a mybatis nem tudja, melyik mező a primer kulcs, és az id az elsődleges kulcsmező, de ezt nem kezelik másként.
Fontos megjegyezni, hogy a #{username} módszer a Felhasználót használva a jelenlegi kontextusként, így a Felhasználó attribútumainak elérésénél közvetlenül meg tudod írni az attribútumnevet.
2. A táblázat hozzáadja a fő kulcsot
Az önnövekedő elsődleges kulcs megfelel az XML konfigurációban lévő elsődleges kulcskitöltésnek, egy egyszerű példa:
Használd az Option funkciót az XML select tag készlet tulajdonságainak megfelelően, a userGeneratordKeys parancsot, hogy jelezze, önnövelő elsődleges kulcsot szeretnél, a keyProperty pedig a fő kulcsmező mezőnevének megadásához.
Az önnövelő elsődleges kulcs az alapadatbázis önnövekvő jellemzőit használja.
3. Válaszd ki a fő billentyűt
Válaszd ki az elsődleges kulcsot, hogy értéket generálj az adatrétegből, és ezt az értéket használd az elsődleges kulcs értékének.
2.2 Töröld @Delete
Törléskor csak írja be a feltételt a @Delete annotáció értékébe, és adja vissza az int típust, mint a sikeresen törölt rekordok száma.
2.3 Változás @Update
Módosításkor csak írd az SQL utasítást a @Update értékébe, és küldj vissza egy int típust, hogy megjelölje a módosított rekordsorok számát.
2.4 Ellenőrizd @Select
A lekérdezés egy kicsit bonyolultabb, mert a lekérdezés azt szabályozza, hogyan állítsuk be a talált mezőket az objektumra, és általában három módja van:
1. Manuálisan megadni az SQL utasításban egy aliast, hogy illeszkedjen
SQL utasítások írásakor manuálisan rendelj el minden mezőhöz egy aliast, hogy illeszkedjen az objektum attribútumaihoz, ami alkalmas olyan helyzetekre, amikor a táblamező neve és az objektum attribútumnevének nagyon eltérő, és kevés táblamező van.
2. Használd a mybatis automatikus aláhúzott púpos átalakulását
A mybatis-nak van egy mapUnderscoreToCamelCase nevű opciója, amely akkor érvényes, ha a táblázatban lévő mező neve megegyezik az objektum attribútumnevével, de a különbség az aláhúzás és a hump írás között.
A mapUnderscoreToCamelCase konfigurálása után a mybatis megpróbálja az aláhúzást egy domborrá alakítani, amikor az EredménySetben található adatokat az objektumhoz állítja, majd az elöl lévő halmazt összefűzi az attribútumok beállításához.
Kapcsold be az átalakítást:
Ezután kérdezzünk:
A nyomtatott eredményt nézve birth_day attribútumok töltődnek fel az objektumba:
3. Használd az ResultMap-et
Ha a tábla mezőneve és az objektum attribútumnevei nem nagyon ugyanazok, és sok mező van a táblában, akkor az adaptációhoz a ResultMap-et kell használni.
@Results megfelel az XML-ben a ResultMapnek, és megadhatsz hozzá azonosítót, amelyet máshol is használhatsz rá hivatkozásra, például a fenti Eredményekre:
Használd a @ResultMap-t egy meglévő ResultMap hivatkozására, amely Java-ban definiálható @Results annotációkkal, XML-ben pedig resultMap címkékkel.
2.5 Példakód
User.java
UserMapper.java
3. Összefoglaló
Az interfész annotációk használatának előnyei:
1. Kényelmesebb és gyorsabb leképezési utasításokat írni
Az interfész annotációk használatának hátrányai:
1. Viszonylag egyszerű konfigurációkhoz alkalmas, és az interfész nem használható, ha túl bonyolult.
2. Nem tudok dinamikus SQL-t használni, kicsit ízléstelen.
|