MyBatis tavasszal

Kitartás felső

Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:

>> ELLENŐRIZZE A FOLYAMATOT

1. Bemutatkozás

A MyBatis az egyik leggyakrabban használt nyílt forráskódú keretrendszer az SQL adatbázis-hozzáférés Java alkalmazásokban történő megvalósításához.

Ebben a gyors bemutatóban bemutatjuk, hogyan integrálható a MyBatis a Spring and Spring Boot programmal.

Azok számára, akik még nem ismerik ezt a keretrendszert, mindenképpen olvassa el a MyBatis-szal való együttműködésről szóló cikkünket.

2. A modell meghatározása

Kezdjük egy egyszerű POJO meghatározásával, amelyet a cikkünkben használunk:

public class cikk {private Long id; privát húr cím; magánhúr-szerző; // kivitelező, szabványos mérőeszközök és beállítók}

És egy egyenértékű SQL schema.sql fájl:

TÁBLÁZAT LÉTREHOZÁSA, HA NEM LÉTEZIK „CIKKEK” (`id` INTEGER PRIMARY KEY,` title` VARCHAR (100) NOT NULL, `author` VARCHAR (100) NOT NULL);

Ezután hozzunk létre egy adatok.sql fájl, amely egyszerűen beszúr egy rekordot a mi fájlunkba cikkeket asztal:

CÉGEK ÉRTÉKEI BEÁLLÍTÁSA (1, „Munka a MyBatisszal tavasszal”, „Baeldung”);

Mindkét SQL fájlt fel kell venni az osztályútvonalra.

3. Tavaszi konfigur

A MyBatis használatának megkezdéséhez két fő függőséget kell tartalmaznunk - MyBatis és MyBatis-Spring:

 org.mybatis mybatis 3.5.2 org.mybatis mybatis-tavasz 2.0.2 

Ezen kívül alapvető tavaszi függőségekre lesz szükségünk:

 org.springframework tavaszi kontextus 5.1.8.RELEASE org.springframework tavaszi bab 5.1.8.RELEASE 

Példáinkban a H2 beágyazott adatbázist fogjuk használni a beállítás egyszerűsítése érdekében EmbeddedDatabaseBuilder osztály a tavasz-jdbc modul a konfigurációhoz:

 com.h2database h2 1.4.199 org.springframework spring-jdbc 5.1.8. KÖZLEMÉNY 

3.1. Annotation Based Configuration

A Spring egyszerűsíti a MyBatis konfigurálását. Az egyetlen szükséges elem a javax.sql.Datasource, org.apache.ibatis.session.SqlSessionFactory, és legalább egy térképező.

Először hozzunk létre egy konfigurációs osztályt:

@Configuration @MapperScan ("com.baeldung.mybatis") public class PersistenceConfig {@Bean public DataSource dataSource () {return new EmbeddedDatabaseBuilder () .setType (EmbeddedDatabaseType.H2) .addScript ("schema.sql"). data.sql ") .build (); } @Bean public SqlSessionFactory sqlSessionFactory () dobja a Kivételt {SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean (); factoryBean.setDataSource (dataSource ()); return factoryBean.getObject (); }}

Alkalmaztuk a @MapperScan a MyBatis-Spring feljegyzése, amely meghatározott csomagokat vizsgál, és automatikusan felveszi az interfészeket a mapper bármely kommentárjának használatával, például @Select vagy @Töröl.

Használata @MapperScan azt is biztosítja, hogy minden megadott térképkészítőt automatikusan babként regisztráljanak, és később a @Autowired annotáció.

Most létrehozhatunk egy egyszerű ArticleMapper felület:

nyilvános felület ArticleMapper {@Select ("KIVÁLASZTÁS * CIKKEKBŐL WHERE id = # {id}") Cikk getArticle (@Param ("id") Hosszú id); }

És végül tesztelje a beállításunkat:

@RunWith (SpringJUnit4ClassRunner.class) @ContextConfiguration (class = PersistenceConfig.class) public class ArticleMapperIntegrationTest {@Autowired ArticleMapper articleMapper; @Test public void whenRecordsInDatabase_shouldReturnArticleWithGivenId () {Article Article = ArticleMapper.getArticle (1L); assertThat (cikk) .isNotNull (); assertThat (cikk.getId ()). isEqualTo (1L); assertThat (article.getAuthor ()). isEqualTo ("Baeldung"); assertThat (article.getTitle ()). isEqualTo ("Munka a MyBatis-szal tavasszal"); }}

A fenti példában a MyBatis-t használtuk az egyetlen rekord beolvasásához, amelyet korábban beillesztettünk adatok.sql fájl.

3.2. XML alapú konfiguráció

Ahogy azt korábban leírtuk, a MyBatis Spring használatához szükségünk van Adatforrás, SqlSessionFactory, és legalább egy térképező.

Hozzuk létre a szükséges babdefiníciókat a bab.xml konfigurációs fájl:

Ebben a példában az általunk biztosított egyéni XML sémát is felhasználtuk tavasz-jdbc a H2 adatforrás konfigurálásához.

A konfiguráció teszteléséhez újból felhasználhatjuk a korábban megvalósított tesztosztályt. Ki kell igazítanunk a kontextus konfigurációját, amelyet megtehetünk az annotáció alkalmazásával:

@ContextConfiguration (helyek = "classpath: /beans.xml")

4. Tavaszi bakancs

A Spring Boot olyan mechanizmusokat kínál, amelyek még jobban leegyszerűsítik a MyBatis és a Spring konfigurációját.

Először tegyük hozzá a mybatis-spring-boot-starter függőség a mi pom.xml:

 org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.0 

Alapértelmezés szerint, ha automatikus konfigurációs funkciót használunk, A Spring Boot felismeri a H2 függőséget az osztályútvonalunkról, és konfigurálja mindkettőt Adatforrás és SqlSessionFactory nekünk. Ezenkívül mindkettőt végrehajtja schema.sql és adatok.sql Indításkor.

Ha nem használunk beágyazott adatbázist, akkor a konfigurációt egy alkalmazás.yml vagy alkalmazás.tulajdonságok fájlt vagy definiálja a Adatforrás bab az adatbázisunkra mutat.

Az egyetlen dolog, amit meg kell tennünk, az, hogy definiálunk egy leképező felületet, ugyanúgy, mint korábban, és annotáltuk a @Mapper annotáció a MyBatis-tól. Ennek eredményeként a Spring Boot megvizsgálja a projektünket, megkeresve ezt a jegyzetet, és babként regisztrálja a leképezőinket.

Ezt követően tesztelhetjük konfigurációnkat a korábban definiált tesztosztály használatával a (z) -tól származó kommentárok alkalmazásával tavasz-csomagtartó-indító-teszt:

@RunWith (SpringRunner.class) @SpringBootTest

5. Következtetés

Ebben a cikkben számos módszert tártunk fel a MyBatis konfigurálásához Spring-szel.

Megnéztük az annotáción alapuló és az XML konfiguráció használatának példáit, és megmutattuk a MyBatis with Spring Boot automatikus konfigurációs szolgáltatásait.

Mint mindig, a cikkben használt teljes kód elérhető a GitHubon.

Perzisztencia alsó

Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:

>> ELLENŐRIZZE A FOLYAMATOT

$config[zx-auto] not found$config[zx-overlay] not found