1. Mybatis palaikomi žemėlapių sudarymo metodai
Mybatis palaikomi žemėlapių sudarymo metodai apima mapper.xml failus, pagrįstus xml ir mapper sąsajos klasėmis, pagrįstomis java. Yra keturi pagrindiniai sąsajos metodo komentarai: @Insert, @Delete, @Update ir @Select
2. Kaip susieti naudojant sąsajos komentarus
Visi šie eksperimentai yra pagrįsti t_user lentelėmis ir yra struktūrizuoti taip:
2.1 Padidinkite @Insert
Iš esmės tam yra trys schemos: rankinis žymėjimas (programos sluoksnis), savaiminis pirminio rakto pridėjimas (duomenų sluoksnio viena lentelė) ir pirminio rakto pasirinkimas (duomenų sluoksnis kelios lentelės).
1. Rankiniu būdu nurodykite pirminį raktą programos lygmenyje
Rankinis metodas netraktuoja pirminio rakto skirtingai ir suteiks pirminiam raktui reikšmę, kai programos sluoksnis sugeneruoja objektą prieš įterpimą, kuris nesiskiria nuo įprasto lauko, kai įterpiamas.
Aukščiau pateiktame pavyzdyje mybatis nežino, kuris laukas yra pirminis raktas, o id yra pirminio rakto laukas, tačiau jis nėra traktuojamas skirtingai.
Atkreipkite dėmesį, kad #{username} metodas yra naudoti vartotoją kaip dabartinį kontekstą, kad pasiekdami vartotojo atributus galėtumėte tiesiogiai parašyti atributo pavadinimą.
2. Lentelė prideda pirminį raktą
Savaime didėjantis pirminis raktas atitinka pirminio rakto užpildymą XML konfigūracijoje, paprastas pavyzdys:
Naudokite parinktį, kad atitiktumėte XML žymių rinkinio ypatybes, userGeneratordKeys, kad nurodytumėte, kad norite naudoti savaime didėjantį pirminį raktą, ir keyProperty, kad nurodytumėte pirminio rakto lauko pavadinimą.
Savaime didėjantis pirminis raktas naudoja pagrindinės duomenų bazės savaiminio didinimo funkcijas.
3. Pasirinkite pirminį raktą
Pasirinkite pirminį raktą, kad sugeneruotumėte reikšmę iš duomenų sluoksnio, ir naudokite šią reikšmę kaip pirminio rakto reikšmę.
2.2 Ištrinti @Delete
Ištrindami tiesiog parašykite sąlygą @Delete anotacijos reikšmėje ir grąžinkite int tipą kaip sėkmingai ištrintų įrašų skaičių.
2.3 Pakeiskite @Update
Modifikuodami tiesiog parašykite SQL sakinį @Update reikšmėje ir grąžinkite int tipą, kad nurodytumėte modifikuotų įrašų eilučių skaičių.
2.4 Patikrinkite @Select
Užklausa yra šiek tiek sudėtingesnė, nes užklausa apima tai, kaip nustatyti rastus laukus objektui, ir paprastai yra trys būdai:
1. Rankiniu būdu nurodykite slapyvardį SQL sakinyje, kad jis atitiktų
Rašydami SQL sakinius, rankiniu būdu kiekvienam laukui priskirkite slapyvardį, kad jis atitiktų objekto atributus, o tai tinka tais atvejais, kai lentelės lauko pavadinimas ir objekto atributo pavadinimas labai skiriasi ir nėra daug lentelės laukų.
2. Naudokite "mybatis" automatinę pabraukimo kupros transformaciją
mybatis turi parinktį, pavadintą mapUnderscoreToCamelCase, kuri taikoma, kai lauko pavadinimas lentelėje sutampa su objekto atributo pavadinimu, tačiau skiriasi pabraukimo ir kupros rašymas.
Sukonfigūravus mapUnderscoreToCamelCase, mybatis bandys konvertuoti apatinį brūkšnį į kuprą, nustatydamas ResultSet rastus duomenis į objektą, o tada susiūti rinkinį priekyje, kad nustatytų atributus.
Įjunkite konversiją.
Tada užklauskite:
Pažvelgus į išspausdintą rezultatą, objekte užpildomi birth_day atributai:
3. Naudokite rezultatų žemėlapį
Jei lentelės lauko pavadinimas ir objekto atributo pavadinimas nelabai sutampa, o lentelėje yra daug laukų, pritaikymui reikia naudoti ResultMap.
@Results atitinka XML rezultatų žemėlapį, ir galite nurodyti jo ID, kurį galima naudoti nurodant jį kitur, pvz., nurodant aukščiau pateiktus rezultatus:
Naudokite @ResultMap norėdami nurodyti esamą ResultMap, kurį galima apibrėžti Java naudojant @Results komentarus arba XML naudojant resultMap žymes.
2.5 Pavyzdžio kodas
User.java
UserMapper.java
3. Santrauka
Sąsajos anotacijų naudojimo privalumai:
1. Patogiau ir greičiau rašyti žemėlapių teiginius
Sąsajos anotacijų naudojimo trūkumai:
1. Jis tinka gana paprastoms konfigūracijoms, o sąsajos negalima padaryti, kai ji yra per sudėtinga.
2. Neįmanoma naudoti dinaminio SQL, šiek tiek neskoningas.
|