MyBatis s jarou
Práve som oznámil nové Naučte sa jar kurz zameraný na základy jari 5 a Spring Boot 2:
>> SKONTROLUJTE KURZ1. Úvod
MyBatis je jedným z najbežnejšie používaných open-source rámcov na implementáciu prístupu k databázam SQL v aplikáciách Java.
V tomto rýchlom výučbe vám predstavíme, ako integrovať MyBatis do jarných a jarných zavádzaní.
Pre tých, ktorí ešte tento rámec nepoznajú, prečítajte si náš článok o práci s MyBatis.
2. Definovanie modelu
Začnime definovaním jednoduchého POJO, ktoré použijeme v celom našom článku:
public class Article {private Long id; súkromný názov reťazca; súkromný autor reťazcov; // konštruktor, štandardné getre a setre}
A ekvivalentný SQL schema.sql spis:
VYTVORIŤ TABUĽKU, AK NEEXISTUJE `ČLÁNKY '(` id` INTEGER PRIMARY KEY, `title` VARCHAR (100) NOT NULL,` autor` VARCHAR (100) NOT NULL);
Ďalej vytvoríme a data.sql súbor, ktorý jednoducho vloží jeden záznam do nášho článkov tabuľka:
VLOŽTE DO HODNOTY ČLÁNKOV (1, „Práca s MyBatis na jar“, „Baeldung“);
Do cesty triedy musia byť zahrnuté oba súbory SQL.
3. Jarná konfigurácia
Aby sme mohli začať používať MyBatis, musíme zahrnúť dve hlavné závislosti - MyBatis a MyBatis-Spring:
org.mybatis mybatis 3.5.2 org.mybatis mybatis-jar 2.0.2
Okrem toho budeme potrebovať základné jarné závislosti:
org.springframework jarný kontext 5.1.8.RELEASE org.springframework jarné fazule 5.1.8.RELEASE
V našich príkladoch použijeme zabudovanú databázu H2 na zjednodušenie nastavenia a EmbeddedDatabaseBuilder triedy z jar-jdbc modul pre konfiguráciu:
com.h2database h2 1.4.199 org.springframework spring-jdbc 5.1.8.RELEASE
3.1. Konfigurácia založená na anotáciách
Jar zjednodušuje konfiguráciu MyBatis. Jediné požadované prvky sú javax.sql.Datasource, org.apache.ibatis.session.SqlSessionFactorya aspoň jeden mapovač.
Najskôr vytvorme konfiguračnú triedu:
@Configuration @MapperScan ("com.baeldung.mybatis") verejná trieda PersistenceConfig {@Bean public DataSource dataSource () {return new EmbeddedDatabaseBuilder () .setType (EmbeddedDatabaseType.H2) .addScript ("schema.sql") .addScript ( data.sql ") .build (); } @Bean public SqlSessionFactory sqlSessionFactory () vyvolá výnimku {SqlSessionFactoryBean factoryBean = nový SqlSessionFactoryBean (); factoryBean.setDataSource (dataSource ()); vrátiť factoryBean.getObject (); }}
Aplikovali sme aj a @MapperScan anotácia z MyBatis-Spring, ktorá skenuje definované balíčky a automaticky sníma rozhrania pomocou ktorejkoľvek z anotácií mapovača, ako napr. @Vybrať alebo @ Odstrániť.
Použitím @MapperScan tiež zaisťuje, že každý poskytnutý mapovač je automaticky zaregistrovaný ako Bean a môže byť neskôr použitý s @Autowired anotácia.
Teraz môžeme vytvoriť jednoduchý ArticleMapper rozhranie:
verejné rozhranie ArticleMapper {@Select ("SELECT * FROM ARTICLES WHERE id = # {id}") Article getArticle (@Param ("id") Long id); }
A nakoniec otestujte naše nastavenie:
@RunWith (SpringJUnit4ClassRunner.class) @ContextConfiguration (classes = PersistenceConfig.class) verejná trieda ArticleMapperIntegrationTest {@Autowired ArticleMapper articleMapper; @Test public void whenRecordsInDatabase_shouldReturnArticleWithGivenId () {Article article = articleMapper.getArticle (1L); assertThat (článok) .isNotNull (); assertThat (article.getId ()). isEqualTo (1L); assertThat (article.getAuthor ()). isEqualTo ("Baeldung"); assertThat (article.getTitle ()). isEqualTo ("Práca s MyBatis na jar"); }}
Vo vyššie uvedenom príklade sme použili MyBatis na získanie jediného záznamu, ktorý sme predtým vložili do nášho data.sql spis.
3.2. Konfigurácia založená na XML
Ako už bolo popísané, na používanie MyBatis s jarom potrebujeme Dátový zdroj, SqlSessionFactory, a aspoň jeden mapovač.
Vytvorme požadované definície fazule v beans.xml konfiguračný súbor:
V tomto príklade sme použili aj vlastnú schému XML poskytovanú serverom jar-jdbc nakonfigurovať náš zdroj údajov H2.
Na otestovanie tejto konfigurácie môžeme znovu použiť predtým implementovanú testovaciu triedu. Musíme však upraviť konfiguráciu kontextu, čo môžeme urobiť použitím anotácie:
@ContextConfiguration (locations = "classpath: /beans.xml")
4. Jarná topánka
Spring Boot poskytuje mechanizmy, ktoré ešte viac zjednodušujú konfiguráciu MyBatis s Spring.
Najskôr pridajme štartér mybatis-spring-boot-start závislosť na našom pom.xml:
org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.0
Ak predvolene používame funkciu automatickej konfigurácie, Spring Boot detekuje závislosť H2 z našej triedy a konfiguruje obe Dátový zdroj a SqlSessionFactory pre nás. Okrem toho vykonáva aj oboje schema.sql a data.sql na začiatku.
Pokiaľ nepoužívame vloženú databázu, môžeme použiť konfiguráciu pomocou aplikácia.yml alebo application.properties súbor alebo definovať a Dátový zdroj fazuľa smerujúca do našej databázy.
Jediná vec, ktorú nám zostáva, je definovať rozhranie mapovača rovnakým spôsobom ako predtým a anotovať ho pomocou @Mapper anotácia z MyBatis. Výsledkom je, že Spring Boot naskenuje náš projekt, hľadá túto anotáciu a zaregistruje našich mapovačov ako fazuľa.
Potom môžeme našu konfiguráciu otestovať pomocou predtým definovanej testovacej triedy použitím anotácií z test štartovacej pružiny:
@RunWith (SpringRunner.class) @SpringBootTest
5. Záver
V tomto článku sme preskúmali niekoľko spôsobov konfigurácie MyBatis s Spring.
Pozreli sme sa na príklady použitia konfigurácie založenej na anotáciách a XML a ukázali sme funkcie automatickej konfigurácie MyBatis s Spring Boot.
Úplný kód použitý v tomto článku je ako vždy k dispozícii na stránkach GitHub.
Perzistencia dno