1. Metody mapowania wspierane przez mybatis
Metody mapowania obsługiwane przez mybatis obejmują mapper.xml pliki oparte na XML oraz klasy interfejsu mappera oparte na Javie. Istnieją cztery główne adnotacje metod interfejsu: @Insert, @Delete, @Update i @Select
2. Jak mapować za pomocą adnotacji interfejsu
Poniższe eksperymenty opierają się na t_user tabelach i są zorganizowane następująco:
2.1 Zwiększenie @Insert
Zasadniczo istnieją trzy schematy: ręczne oznaczenie (warstwa aplikacji), samododawanie klucza głównego (pojedyncza tabela warstwy danych) oraz wybór klucza głównego (warstwa danych z wieloma tabelami).
1. Ręcznie określ klucz główny na warstwie aplikacji
Metoda ręczna nie traktuje klucza głównego inaczej i poda mu wartość podczas generowania obiektu przez warstwę aplikacyjną przed wstawieniem, która nie różni się od normalnego pola po wstawieniu.
W powyższym przykładzie mybatis nie wie, które pole jest kluczem głównym, a id jest polem klucza głównego, ale nie jest traktowane inaczej.
Należy zauważyć, że metoda #{username} polega na użyciu User jako bieżącego kontekstu, tak aby przy uzyskiwaniu dostępu do atrybutów User można było bezpośrednio zapisać nazwę atrybutu.
2. Tabela dodaje klucz główny
Samoprzyrastający klucz główny odpowiada uzupełnieniu klucza pierwotnego w konfiguracji XML, prosty przykład:
Użyj Option, aby odpowiadać właściwościom zestawu tagów select w XML, userGeneratordKeys, aby wskazać, że chcesz użyć samoprzyrastających kluczy głównych, oraz keyProperty, aby określić nazwę pola klucza głównego.
Samoprzyrastający klucz główny wykorzystuje samoprzyrastające cechy bazy danych.
3. Wybierz klucz główny
Wybierz klucz główny, aby wygenerować wartość z warstwy danych i użyj tej wartości jako wartości klucza głównego.
2.2 Usuń @Delete
Podczas usuwania po prostu wpisz warunek w wartości @Delete adnotacji i zwróć typ int jako liczbę rekordów, które zostały pomyślnie usunięte.
2.3 Zmiana @Update
Podczas modyfikacji wystarczy zapisać polecenie SQL w wartości @Update i zwrócić typ int, aby wskazać liczbę zmodyfikowanych linii rekordu.
2.4 Check @Select
Zapytania są nieco bardziej skomplikowane, ponieważ polegają na tym, jak ustawić znalezione pola do obiektu, a zwykle istnieją trzy sposoby:
1. Ręcznie określ alias w instrukcji SQL tak, aby pasował
Podczas pisania instrukcji SQL ręcznie przypisuj alias, aby odpowiadał atrybutom obiektu, co jest odpowiednie w sytuacjach, gdy nazwa pola tabeli i atrybutu obiektu są bardzo różne i pola tabeli jest niewiele.
2. Użyj automatycznej transformacji garbu podkreślenia mybatis
mybatis ma opcję o nazwie mapUnderscoreToCamelCase, która ma zastosowanie, gdy nazwa pola w tabeli jest taka sama jak nazwa atrybutu obiektu, ale różnica w zapisie podkreśleń i hump.
Po skonfigurowaniu mapUnderscoreToCamelCase, mybatis spróbuje przekształcić podkreślenie w garb podczas ustawiania danych znalezionych w ResultSet do obiektu, a następnie zszyje zestaw przed nim, aby ustawić atrybuty.
Włącz konwersję:
Następnie zapytaj:
Patrząc na wydrukowany wynik, birth_day atrybutów jest wypełnionych w obiekcie:
3. Użyj ResultMap
Jeśli nazwa pola tabeli i nazwa atrybutu obiektu nie są bardzo identyczne, a w tabeli jest wiele pól, do adaptacji należy użyć ResultMap.
@Results odpowiada ResultMap w XML i możesz określić dla niego identyfikator, który może być użyty do odwołania się gdzie indziej, na przykład do odniesienia do powyższych Wyników:
Użyj @ResultMap do odniesienia się do istniejącej ResultMap, którą można zdefiniować w Javie za pomocą @Results adnotacji lub w XML za pomocą tagów resultMap.
2.5 Przykładowy kod
User.java
UserMapper.java
3. Podsumowanie
Zalety stosowania adnotacji interfejsu:
1. Pisanie instrukcji odwzorowania jest wygodniejsze i szybsze
Wady używania adnotacji interfejsu:
1. Nadaje się do stosunkowo prostych konfiguracji i interfejs nie może być wykonany, gdy jest zbyt skomplikowany.
2. Nie mogę używać dynamicznego SQL, trochę bez smaku.
|