MyBatis tavasszal
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 FOLYAMATOT1. 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ó