Mój Batis
Deweloperzy | Zespół MyBatis |
---|---|
Wersja stabilna | 3.5.10 / 23 maja 2022
|
Magazyn | |
Napisane w | Jawa |
System operacyjny | Międzyplatformowe |
Typ | Struktura trwałości |
Licencja | Licencja Apache 2.0 |
Strona internetowa |
|
MyBatis to platforma trwałości Java , która łączy obiekty z procedurami składowanymi lub instrukcjami SQL za pomocą deskryptora XML lub adnotacji.
MyBatis to darmowe oprogramowanie rozpowszechniane na licencji Apache 2.0.
MyBatis jest rozwidleniem iBATIS 3.0 i jest utrzymywany przez zespół, w skład którego wchodzą oryginalni twórcy iBATIS .
Podsumowanie funkcji
W przeciwieństwie do frameworków ORM , MyBatis nie odwzorowuje obiektów Java na tabele bazy danych , ale metody Java na instrukcje SQL .
MyBatis umożliwia korzystanie ze wszystkich funkcji bazy danych, takich jak procedury składowane, widoki , zapytania o dowolnej złożoności i własności dostawców. Często jest to dobry wybór w przypadku starszych lub nieznormalizowanych baz danych lub w celu uzyskania pełnej kontroli nad wykonywaniem SQL.
Upraszcza kodowanie w porównaniu do JDBC . Instrukcje SQL są wykonywane w jednej linii.
MyBatis zapewnia mechanizm mapowania, który mapuje wyniki SQL na drzewa obiektów w sposób deklaratywny.
Instrukcje SQL mogą być budowane dynamicznie przy użyciu wbudowanego języka o składni podobnej do XML lub z Apache Velocity przy użyciu wtyczki integracyjnej Velocity.
MyBatis integruje się z Spring Framework i Google Guice . Ta cecha pozwala na budowanie kodu biznesowego wolnego od zależności.
MyBatis obsługuje deklaratywne buforowanie danych. Instrukcję można oznaczyć jako buforowalną, więc wszelkie dane pobrane z bazy danych będą przechowywane w pamięci podręcznej, a przyszłe wykonania tej instrukcji będą pobierać dane z pamięci podręcznej zamiast trafiać do bazy danych. MyBatis zapewnia domyślną implementację pamięci podręcznej opartą na Javie HashMap i domyślnych konektorach do integracji z: OSCache, Ehcache , Hazelcast i Memcached . Zapewnia interfejs API do podłączania innych implementacji pamięci podręcznej.
Stosowanie
Instrukcje SQL są przechowywane w plikach XML lub adnotacjach. Poniżej przedstawiono mapowanie MyBatis, które składa się z interfejsu Java z kilkoma adnotacjami MyBatis:
pakiet org.mybatis.example ; interfejs publiczny BlogMapper { @Select ( „wybierz * z bloga, gdzie id = #{id}” ) Blog wybierzBlog ( identyfikator int ); }
Wyrok jest wykonywany w następujący sposób.
Program mapujący BlogMapper = sesja . getMapper ( BlogMapper . klasa ); Blog blog = twórca map . wybierzBlog ( 101 );
Instrukcje SQL i odwzorowania można również przenieść do pliku XML w następujący sposób.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis -3-mapper.dtd"> <mapper namespace= "org.mybatis.example.BlogMapper" > <select id= "selectBlog" parametrType= "int" resultType= "Blog" > wybierz * z Bloga, gdzie id = #{ id } </select> </mapper>
Instrukcje można również wykonywać za pomocą interfejsu API MyBatis.
Blog blog = sesja . selectOne ( "org.mybatis.example.BlogMapper.selectBlog" , 101 );
Aby uzyskać szczegółowe informacje, zapoznaj się z Podręcznikiem użytkownika dostępnym na stronie MyBatis. Zobacz linki zewnętrzne.
Wiosenna integracja
MyBatis integruje się z Spring Framework . Ten moduł pozwala MyBatis uczestniczyć w transakcjach wiosennych. Zbuduje również mapery i sesje MyBatis oraz wstrzyknie je do innych komponentów bean.
Poniższy przykład przedstawia podstawową konfigurację XML, która konfiguruje element odwzorowujący i wstrzykuje go do komponentu bean „BlogService”.
<bean id= "sqlSessionFactory" class= "org.mybatis.spring.SqlSessionFactoryBean" > <property name= "dataSource" ref= "dataSource" /> </bean> <bean id= "blogMapper" class= "org.mybatis .spring.mapper.MapperFactoryBean" > < nazwa właściwości = "sqlSessionFactory" ref = "sqlSessionFactory" /> <właściwość
name= "mapperInterface" value= "org.mybatis.example.BlogMapper" /> </bean> <bean id= "blogService" class= "org.mybatis.example.BlogServiceImpl" > <property name= "blogMapper" ref= "blogMapper" /> </bean>
Dzwonienie do MyBatis to teraz tylko dzwonienie do fasoli:
klasa publiczna BlogServiceImpl implementuje usługę BlogService { private BlogMapper blogMapper ; public void setBlogMapper ( BlogMapper blogMapper ) { to . blogMapper = blogMapper ; } public void doSomethingWithABlog ( int blogId ) { Blog blog = blogMapper . wybierz Blog
( identyfikator bloga ); ... } }
Język prędkości
Sterownik języka Velocity pozwala używać Apache Velocity do generowania dynamicznych zapytań SQL w locie.
< select id = "findPerson" lang = "velocity" > # set ( $ pattern = $ _parameter . name + '%' ) SELECT * FROM person WHERE name LIKE @ { pattern, jdbcType=VARCHAR} </ select >
Generator MyBatis
MyBatis zapewnia generator kodu. Generator MyBatis przeprowadzi introspekcję tabeli bazy danych (lub wielu tabel) i wygeneruje artefakty MyBatis potrzebne do wykonywania CRUD (Create, Retrieve, Update, Delete).
wtyczka Eclipse .
Zachowa każdy niestandardowy kod w przypadku regeneracji, ale tylko wtedy, gdy użyjesz wtyczki Eclipse.
Migracje MyBatis
narzędzie wiersza poleceń Java , które śledzi zmiany schematu bazy danych, zarządzając plikami DDL (znane jako migracje ).
Migracje umożliwiają sprawdzenie aktualnego stanu bazy danych, zastosowanie zmian w schemacie, a także ich cofnięcie. Pomaga również wykrywać i rozwiązywać współbieżne zmiany schematu bazy danych wprowadzane przez różnych programistów.
Historia
Projekt MyBatis jest filią iBATIS 3.0 i jest utrzymywany przez zespół, który obejmuje oryginalnych twórców iBATIS.
Projekt powstał 19 maja 2010 r., kiedy opublikowano Apache iBATIS 3.0, a zespół ogłosił, że rozwój będzie kontynuowany pod nową nazwą i nowym domem w Google Code.
Zobacz też
- Hibernować
- Szybkość
- Łączność z bazą danych Java (JDBC)
- API trwałości Javy
- EclipseLink
- Ebean
- jOOQ
- Apache Cayenne
- IBM PureQuery
- nNawilżanie
- Apache OpenJPA
- ActiveJPA