1. Metode pemetaan yang didukung oleh mybatis
Metode pemetaan yang didukung oleh mybatis termasuk file mapper.xml berdasarkan kelas antarmuka xml dan mapper berdasarkan java. Ada empat anotasi metode antarmuka utama: @Insert, @Delete, @Update, dan @Select
2. Cara memetakan menggunakan anotasi antarmuka
Eksperimen berikut semuanya didasarkan pada tabel t_user dan disusun sebagai berikut:
2.1 Tingkatkan @Insert
Pada dasarnya ada tiga skema untuk ini, yaitu penunjukan manual (lapisan aplikasi), penambahan sendiri kunci primer (tabel tunggal lapisan data), dan memilih kunci primer (tabel ganda lapisan data).
1. Tentukan kunci primer secara manual di lapisan aplikasi
Metode manual tidak memperlakukan kunci primer secara berbeda, dan akan memberikan nilai kunci primer ketika lapisan aplikasi menghasilkan objek sebelum dimasukkan, yang tidak berbeda dengan bidang normal saat dimasukkan.
Dalam contoh di atas, mybatis tidak tahu bidang mana yang merupakan kunci utama, dan id adalah bidang kunci utama, tetapi tidak diperlakukan secara berbeda.
Perhatikan bahwa metode #{username} adalah menggunakan User sebagai konteks saat ini, sehingga saat mengakses atribut User, Anda dapat langsung menulis nama atribut.
2. Tabel menambahkan kunci utama
Kunci primer yang bertambah sendiri sesuai dengan pengisian ulang kunci primer dalam konfigurasi XML, contoh sederhana:
Gunakan Option untuk berkorespondensi dengan properti tag pilih yang ditetapkan dalam XML, userGeneratordKeys untuk menunjukkan bahwa Anda ingin menggunakan kunci primer yang bertambah sendiri, dan keyProperty untuk menentukan nama bidang bidang kunci utama.
Kunci primer yang bertambah sendiri menggunakan fitur penambahan sendiri dari database yang mendasarinya.
3. Pilih kunci utama
Pilih kunci primer untuk menghasilkan nilai dari lapisan data dan gunakan nilai ini sebagai nilai kunci utama.
2.2 Hapus @Delete
Saat menghapus, cukup tulis kondisi dalam nilai anotasi @Delete, dan kembalikan jenis int sebagai jumlah catatan yang telah berhasil dihapus.
2.3 Ubah @Update
Saat memodifikasi, cukup tulis pernyataan SQL dalam nilai @Update, dan kembalikan jenis int untuk menunjukkan jumlah baris catatan yang dimodifikasi.
2.4 Periksa @Select
Kueri sedikit lebih rumit, karena kueri melibatkan cara mengatur bidang yang ditemukan ke objek, dan biasanya ada tiga cara:
1. Tentukan alias secara manual dalam pernyataan SQL agar cocok
Saat menulis pernyataan SQL, tetapkan alias secara manual ke setiap bidang agar sesuai dengan atribut objek, yang cocok untuk situasi di mana nama bidang tabel dan nama atribut objek sangat berbeda dan tidak banyak bidang tabel.
2. Gunakan transformasi punuk garis bawah otomatis mybatis
mybatis memiliki opsi yang disebut mapUnderscoreToCamelCase yang berlaku ketika nama bidang dalam tabel sama dengan nama atribut objek, tetapi perbedaan dalam garis bawah dan penulisan punuk.
Setelah mengonfigurasi mapUnderscoreToCamelCase, mybatis akan mencoba mengonversi garis bawah menjadi punuk saat mengatur data yang ditemukan di ResultSet ke objek, lalu menjahit set di depan untuk mengatur atribut.
Mengaktifkan konversi:
Kemudian kueri:
Melihat hasil yang dicetak, atribut birth_day diisi ke dalam objek:
3. Gunakan Peta Hasil
Jika nama bidang tabel dan nama atribut objek tidak hampir sama, dan ada banyak bidang dalam tabel, ResultMap harus digunakan untuk adaptasi.
@Results sesuai dengan ResultMap dalam XML, dan Anda dapat menentukan id untuk itu, yang dapat digunakan untuk mereferensikannya di tempat lain, seperti untuk mereferensikan Hasil di atas:
Gunakan @ResultMap untuk mereferensikan ResultMap yang ada, yang dapat didefinisikan di Java menggunakan anotasi @Results atau dalam XML menggunakan tag resultMap.
2.5 Kode Sampel
User.java
UserMapper.java
3. Ringkasan
Keuntungan menggunakan anotasi antarmuka:
1. Lebih nyaman dan cepat untuk menulis pernyataan pemetaan
Kerugian menggunakan anotasi antarmuka:
1. Sangat cocok untuk konfigurasi yang relatif sederhana, dan antarmuka tidak dapat dilakukan jika terlalu rumit.
2. Tidak dapat menggunakan SQL dinamis, agak hambar.
|