1. Kartleggingsmetoder støttet av mybatis
Mappingmetodene som støttes av mybatis inkluderer mapper.xml filer basert på xml og mapper-grensesnittklasser basert på java. Det finnes fire hovedannotasjoner for grensesnittmetode: @Insert, @Delete, @Update og @Select
2. Hvordan kartlegge ved hjelp av grensesnittannotasjoner
Følgende eksperimenter er alle basert på t_user tabeller og er strukturert som følger:
2.1 Øk @Insert
Det finnes i hovedsak tre ordninger for dette, nemlig manuell betegnelse (applikasjonslag), selv-leggende primærnøkkel (datalag enkelt tabell), og valg av primærnøkkel (datalag med flere tabeller).
1. Spesifiser primærnøkkelen manuelt på applikasjonslaget
Den manuelle metoden behandler ikke primærnøkkelen annerledes, og vil gi primærnøkkelen en verdi når applikasjonslaget genererer objektet før innsetting, noe som ikke er annerledes enn det vanlige feltet når det er satt inn.
I eksempelet over vet ikke mybatis hvilket felt som er primærnøkkelen, og id er primærnøkkelfeltet, men det behandles ikke annerledes.
Merk at #{brukernavn}-metoden er å bruke Bruker som nåværende kontekst, slik at når du får tilgang til Brukerens attributter, kan du skrive attributtnavnet direkte.
2. Tabellen legger til primærnøkkelen
Den selvinkrementerende primærnøkkelen tilsvarer tilbakefyllingen av primærnøkkelen i XML-konfigurasjonen, et enkelt eksempel:
Bruk Option for å tilsvare egenskapene til select tag-settet i XML, userGeneratordKeys for å indikere at du vil bruke en selvinkrementerende primærnøkkel, og keyProperty for å spesifisere feltnavnet til primærnøkkelfeltet.
Den selvøkende primærnøkkelen bruker de selvøkende funksjonene i den underliggende databasen.
3. Velg primærnøkkelen
Velg primærnøkkelen for å generere en verdi fra datalaget og bruk denne verdien som verdien til primærnøkkelen.
2.2 Slett @Delete
Når du sletter, skriv bare betingelsen i verdien av @Delete-annotasjonen, og returner en int-type som antall poster som har blitt slettet med suksess.
2.3 Endring @Update
Når du modifiserer, skriv bare SQL-setningen i verdien av @Update, og returner en int-type for å indikere antall endrede postlinjer.
2.4 Sjekk @Select
Spørringen er litt mer komplisert, fordi spørringen handler om hvordan man setter de funnede feltene til objektet, og det finnes vanligvis tre måter:
1. Spesifiser manuelt et alias i SQL-setningen for å matche
Når du skriver SQL-setninger, tildeler du manuelt et alias til hvert felt for å matche objektets attributter, noe som passer i situasjoner hvor tabellfeltnavnet og objektattributtnavnet er svært forskjellige og det ikke er mange tabellfelt.
2. Bruk mybatis' automatiske transformasjon av understrekningshumpen
mybatis har et alternativ kalt mapUnderscoreToCamelCase som gjelder når feltnavnet i tabellen er det samme som objektets attributtnavn, men forskjellen i understrek og pukkelskrift.
Etter å ha konfigurert mapUnderscoreToCamelCase, vil mybatis prøve å konvertere underscoren til en hump når dataene funnet i ResultSet settes til objektet, og deretter sy settet foran for å sette attributtene.
Slå på konverteringen:
Deretter spør du:
Når man ser på det utskrevne resultatet, fylles birth_day attributter inn i objektet:
3. Bruk ResultMap
Hvis feltnavnet til tabellen og attributtnavnet til objektet ikke er så like, og det er mange felt i tabellen, bør ResultMap brukes for tilpasning.
@Results tilsvarer ResultMap i XML, og du kan spesifisere en id for den, som kan brukes til å referere til den andre steder, for eksempel til å referere til de ovennevnte resultatene:
Bruk @ResultMap til å referere til en eksisterende ResultMap, som kan defineres i Java ved hjelp av @Results annotasjoner eller i XML med resultMap-tagger.
2.5 Eksempelkode
User.java
UserMapper.java
3. Sammendrag
Fordeler med å bruke grensesnittannotasjoner:
1. Det er mer praktisk og raskt å skrive mapping-setninger
Ulemper ved å bruke grensesnittannotasjoner:
1. Den egner seg for relativt enkle konfigurasjoner, og grensesnittet kan ikke gjøres når det er for komplisert.
2. Kan ikke bruke dynamisk SQL, litt smakløst.
|