Properti
Ini adalah properti alternatif eksternalisasi yang juga dapat dikonfigurasi dalam file konfigurasi properti Java yang khas atau melewati elemen anak dari elemen properti. Misalnya:
<Properties Resource = "org/mybatis/example/config.properties"> <properti name = "nama pengguna" value = "dev_user"/> <name properti = "kata sandi" value = "f2fa3! 33tyyg"/> </properties>
Properti di dalamnya dapat digunakan di seluruh file konfigurasi, dan properti yang dapat diganti digunakan untuk mengimplementasikan konfigurasi dinamis. Misalnya:
<DataSource type = "pooled"> <name properti = "driver" value = "$ {driver}"/> <name properti = "url" value = "$ {url}"/> <name properti = "username" value = "$ {username}"/> <nama properti = "kata sandi" value = "$ {kata sandi}"/{}}} </} </>
Dalam contoh ini, nama pengguna dan kata sandi akan diganti dengan nilai yang ditetapkan dalam elemen Properties. Properti driver dan URL akan diganti dengan nilai yang terkandung dalam file config.properties.
Pengaturan
1.Cacheenabled
Konfigurasi ini memungkinkan mapper global untuk mengaktifkan atau menonaktifkan cache.
Nilai Valid: Benar, Salah
Nilai default: Benar
2.LazyloadingEnabled
Aktifkan atau nonaktifkan pemuatan malas secara global. Saat dinonaktifkan, semua objek terkait dimuat secara instan.
Nilai Valid: Benar, Salah
Nilai default: Benar
3. Agressivelyzyloading
Saat diaktifkan, objek dengan properti pemuatan yang tertunda akan sepenuhnya memuat properti apa pun saat dipanggil. jika tidak,
Setiap atribut akan dimuat sesuai kebutuhan.
Nilai Valid: Benar, Salah
Nilai default: Benar
4.Mult IpleresultSetsenabled
Izinkan atau jangan biarkan beberapa set hasil dikembalikan dari pernyataan terpisah (membutuhkan pengemudi yang sesuai)
Nilai Valid: Benar, Salah
Nilai default: Benar
5.UsecolumnLabel
Gunakan label kolom sebagai ganti nama kolom. Driver yang berbeda nyaman untuk pertunjukan yang berbeda. Lihat dokumentasi driver atau uji metode lengkap untuk menentukan driver yang digunakan.
Nilai Valid: Benar, Salah
Nilai default: Benar
6.SeGeneratedKeys
Memungkinkan JDBC untuk mendukung kunci yang dihasilkan. Butuh drive yang cocok. Jika diatur ke true, pengaturan ini memaksa tombol yang dihasilkan untuk digunakan, dan meskipun beberapa driver menolak untuk kompatibel, mereka masih valid (seperti derby)
Nilai Valid: Benar, Salah
Nilai default: Salah
7.AutomappingBehavior
Menentukan bagaimana mybatis secara otomatis memetakan kolom ke bidang/atribut. Parsial hanya akan secara otomatis memetakan sederhana dan tidak memiliki hasil bersarang.
Lengkap akan secara otomatis memetakan hasil yang kompleks (dinyatakan atau sebaliknya)
Nilai yang valid: tidak ada, sebagian, penuh
Nilai default: sebagian
8.DefaultExecutorType
Konfigurasikan pelaksana default. Tidak ada yang istimewa tentang aktuator sederhana. Eksekutor penggunaan kembali menggunakan kembali pernyataan preprocessing.
Eksekutor Batch Pernyataan Penggunaan Kembali dan Pembaruan Batch Nilai Valid: Sederhana, Penggunaan kembali, Batch
Nilai default: Sederhana
9.DefaultStatementTimeout
Atur waktu batas waktu, yang menentukan waktu pengemudi menunggu respons database.
Nilai yang valid: apapun, positif, bilangan bulat
Nilai default: tidak diatur (null)
Contoh pengaturan elemen informasi, konfigurasi lengkap adalah sebagai berikut:
<Pengaturan> <pengaturan nama = "Cacheenabled" value = "true"/> <pengaturan nama = "lazyloadingEnabled" value = "true"/> <pengaturan nama = "multipleresultSEnEnable" value = "true"/> <pengaturan nama = "usecolumnlabel" value = "true"/<pengaturan nama "name =" name "fies =" fies = "trime"/<set pengaturan "" name "name =" fies = "fies =" trime "/<set uSeGEnatED" name = "NAME"/<NOVING "/<NAME"/<NAME "/<NAME"/<NAME "/<NAME" value = "false"/> <pengaturan name = "defaultexecutorType" value = "Simple"/> <pengaturan name = "defaultStateMentTimeOut" value = "25000"/> </settings>
Typealiases
Jenis alias adalah untuk menyebutkan nama pendek untuk tipe java. Ini hanya terkait dengan konfigurasi XML dan hanya digunakan untuk mengurangi bagian berlebihan dari nama kelas yang sepenuhnya memenuhi syarat. Misalnya:
<Typealias alias = "penulis" type = "domain.blog.author"/> <typealias alias = "blog" type = "domain.blog.blog"/> <typealias alias = "komentar" type = "domain.blog.comment"/> <typealias alias = "post" post "" post "" post "" post "domain" type = "domain.blog.section"/> <typealias alias = "tag" type = "domain.blog.tag"/> </yypealias>
Dengan konfigurasi ini, "blog" dapat digunakan sebagai sewenang -wenang alih -alih di mana "domain.blog.blog" digunakan. Untuk jenis Java normal, ada banyak alias tipe bawaan. Keduanya tidak peka kasus, dan karena nama yang kelebihan beban, Anda harus memperhatikan penanganan tipe asli.
typeHandlers
Apakah MyBatis menetapkan parameter dalam pernyataan preprocessing atau mengambil nilai dari set hasil, prosesor tipe digunakan untuk mengonversi nilai yang diperoleh menjadi tipe java dengan cara yang sesuai. Tabel berikut menjelaskan prosesor tipe default.
Anda dapat menulis ulang tipe prosesor atau membuat prosesor tipe Anda sendiri untuk menangani tipe yang tidak didukung atau tidak standar. Tapi situasi ini sangat jarang! Lai
ObjectFactory
Mybatis dilakukan dengan menggunakan instance ObjectFactory setiap kali contoh baru dari objek hasil dibuat. Jika peta parameter ada, ObjectFactory default tidak berfungsi lebih dari instantiasi kelas target menggunakan konstruktor default atau konstruktor dengan parameter. Jika Anda ingin menulis ulang ObjectFactory default, Anda dapat membuat sendiri. Contoh dihilangkan.
plugin
Mybatis memungkinkan Anda untuk mencegat panggilan yang dieksekusi dengan pernyataan yang dipetakan pada titik tertentu. Secara default, mybatis memungkinkan plugin untuk mencegat panggilan metode:
1. Eksekutor
(Pembaruan, kueri, flushstatements, komit, rollback, getTransaction, tutup, isclose)
2. ParameterHandler
(GetParameterObject, setParameters)
3.ResultsetHandler
(Handleresultsets, HandleOutputParameters)
4.Statementhandler
(Persiapkan, parameterisasi, batch, perbarui, permintaan)
Lingkungan
Mybatis dapat dikonfigurasi dengan beberapa lingkungan. Ini akan membantu Anda menerapkan pemetaan SQL ke beberapa database.
Pertanyaan yang sangat penting untuk diingat: Anda dapat mengonfigurasi beberapa lingkungan, tetapi Anda hanya dapat memilih satu untuk setiap instance SQLSessionFactory. Jadi, jika Anda ingin terhubung ke dua database, Anda perlu membuat dua instance SQLSessionFactory, satu untuk setiap database. Dan jika itu adalah tiga database, Anda membutuhkan tiga contoh, dan sebagainya.
Elemen Lingkungan Tentukan Cara Mengkonfigurasi Lingkungan, misalnya:
<lingkungan default = "pengembangan"> <lingkungan id = "pengembangan"> <transactionManager type = "jdbc"> <name properti = "..." value = "..."/> </TransactionManager> <DataSource type = "pooled"> <nama properti = "driver" value = "$ {driver}"/<nama properti "name =" $ "$" $ " value = "$ {username}"/> <properti name = "password" value = "$ {password}"/> </dateSource> </vench> </urvironments> Catatan di sini:
1. ID lingkungan default (misalnya: default = "pengembangan").
2. ID lingkungan yang ditentukan oleh setiap elemen lingkungan (misalnya: id = "pengembangan").
3. Konfigurasi Transaction Manager (misalnya: type = "jdbc").
4. Konfigurasi Sumber Data (misalnya: type = "pooled").
TransactionManager
Ada dua jenis manajer transaksi di mybatis (mis. Tipe = "[jdbc | dikelola]".
1.JDBC --- Konfigurasi ini secara langsung dan hanya menggunakan pengaturan komit dan rollback JDBC. Ini bergantung pada koneksi yang diperoleh dari sumber data untuk mengelola ruang lingkup transaksi.
2. dikelola --- konfigurasi ini hampir tidak ada apa-apa. Itu tidak pernah melakukan atau menggulung kembali koneksi. Dan memungkinkan wadah untuk mengelola seluruh siklus hidup suatu transaksi (seperti konteks server aplikasi Spring atau JEE). Secara default menutup koneksi. Namun beberapa wadah tidak menginginkan ini, jadi jika Anda perlu menghentikannya dari koneksi, atur properti closeConnection menjadi false. Misalnya:
<transactionManager type = "dikelola"> <name properti = "closeConnection" value = "false"/> </transactionManager>
Tidak ada manajer transaksi yang membutuhkan properti. Namun, mereka semua tipe alias, dan untuk menggantinya, Anda perlu menempatkan nama Anda sendiri atau mengetik alias kelas Anda sendiri, yang merujuk kelas implementasi Anda untuk antarmuka transacfactory.