1. Mybatis tarafından desteklenen eşleme yöntemleri
Mybatis tarafından desteklenen eşleme yöntemleri, xml tabanlı mapper.xml dosyalar ve java tabanlı haritalayıcı arayüz sınıflarını içerir. Dört ana arayüz yöntemi açıklaması vardır: @Insert, @Delete, @Update ve @Select
2. Arayüz açıklamaları kullanılarak nasıl haritalanır
Aşağıdaki deneylerin tamamı t_user tabloya dayanır ve şu şekilde yapılandırılmıştır:
2.1 Artır @Insert
Bunun için temelde üç şema vardır: manuel tanımlama (uygulama katmanı), kendi kendine ekleme birincil anahtar (veri katmanı tek tablo) ve birincil anahtar seçme (veri katmanı çoklu tablo).
1. Uygulama katmanında birincil anahtarı manuel olarak belirtin
Manuel yöntem birincil anahtarı farklı ele almaz ve uygulama katmanı nesneyi eklemeden önce oluşturduğunda birincil anahtara bir değer verir; bu değer eklendiğinde normal alandan farklı değildir.
Yukarıdaki örnekte, mybatis hangi alanın birincil anahtar olduğunu bilmez ve id birincil anahtar alandır, ancak farklı şekilde ele alınmaz.
#{username} yönteminin, Kullanıcının niteliklerine erişirken doğrudan öznitelik adını yazabilmeniz için mevcut bağlam olarak Kullanıcı kullanmaktır.
2. Tablo birincil anahtarı ekler
Kendi kendine artan birincil anahtar, XML yapılandırmasındaki birincil anahtar geri doldurmaya karşılık gelir, basit bir örnek:
XML'deki select etiketi setinin özelliklerine karşılık gelmek için Option, kendi kendine artan birincil anahtar kullanmak istediğinizi belirtmek için userGeneratordKeys ve ana anahtar alanının alan adını belirtmek için keyProperty kullanın.
Kendi kendine artan birincil anahtar, temel veritabanının kendiliğinden artan özelliklerini kullanır.
3. Ana anahtarı seçin
Veri katmanından bir değer oluşturmak için birincil anahtarı seçin ve bu değeri birincil anahtarın değeri olarak kullanın.
2.2 Sil @Delete
Silerken sadece @Delete annotasyonunun değerine koşulu yazın ve başarıyla silinen kayıt sayısı olarak int türü döndürün.
2.3 Değişiklik @Update
Değişiklik yaparken, sadece SQL ifadesini @Update değerine yazın ve değiştirilen kayıt satırlarının sayısını belirtmek için bir int türü döndürün.
2.4 Kontrol @Select
Sorgulama biraz daha karmaşıktır, çünkü sorgu bulunan alanların nesneye nasıl ayarlanacağını içerir ve genellikle üç yol vardır:
1. SQL ifadesinde eşleşecek bir takma adı manuel olarak belirtin
SQL ifadeleri yazarken, her alana nesnenin öznitelikleriyle eşleşecek şekilde manuel olarak bir alias atayın; bu, tablo alanı adı ile nesne öznitelik adının çok farklı olduğu ve çok fazla tablo alanı olmadığı durumlar için uygundur.
2. Mybatis'in otomatik alt çizim hump dönüşümünü kullanın
mybatis'in mapUnderscoreToCamelCase adlı bir seçeneği vardır; bu, tablodaki alan adı nesnenin öznitelik adıyla aynı ama alt çizgi ve hump yazısı arasındaki farkı varsa geçerlidir.
mapUnderscoreToCamelCase yapılandırıldıktan sonra, mybatis ResultSet'te bulunan verileri nesneye ayarlarken alt çizgiyi bir hump haline dönüştürmeye çalışır ve ardından önündeki seti dikişleyerek öznitelikleri ayarlar.
Dönüşümü açın:
Sonra sorgu yapın:
Yazdırılmış sonuca bakıldığında, nesneye birth_day öznitelik yerleştirilmiştir:
3. ResultMap'i kullanın
Eğer tablonun alan adı ile nesnenin öznitelik adı çok farklı değilse ve tabloda birçok alan varsa, uyarlama için ResultMap kullanılmalıdır.
@Results, XML'deki ResultMap'e karşılık gelir ve bunun için bir id belirtebilirsiniz; bu da yukarıdaki Sonuçlara referans vermek için başka yerlerde referans vermek için kullanılabilir:
@ResultMap kullanarak mevcut bir ResultMap'e referans verin; bu Java ile @Results annotasyonları veya XML ile resultMap etiketleriyle tanımlanabilir.
2.5 Örnek Kod
User.java
UserMapper.java
3. Özet
Arayüz açıklamalarının avantajları:
1. Eşleme ifadeleri yazmak daha pratik ve hızlıdır
Arayüz açıklamalarının dezavantajları:
1. Nispeten basit yapılandırmalar için uygundur ve arayüz çok karmaşık olduğunda yapılamaz.
2. Dinamik SQL kullanamıyorum, biraz zevksiz.
|