Membangun SQLSessionFactory dari XML
Membangun contoh SQLSessionFactory dari file XML sangat sederhana. Di sini kami menyarankan Anda menggunakan file sumber daya di bawah ClassPath untuk mengonfigurasinya.
String Resource = "org/mybatis/example/configuration.xml"; Pembaca pembaca = sumber daya.getResourceasReader (sumber daya); sqlmapper = SQLSessionFactoryBuilder baru (). Build (pembaca);
File konfigurasi XML berisi pengaturan inti untuk sistem MyBATIS, termasuk sumber data untuk mendapatkan instance koneksi basis data dan manajer transaksi yang menentukan ruang lingkup dan kontrol transaksi. Sebagai contoh:
<? Xml Version = "1.0" encoding = "utf-8"?> <! Doctype Configuration Public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <porporage> <porporage = "Lingkungan =" Lingkungan = "" "" " type = "jdbc"/> <datasource type = "pooled"> <properti name = "driver" value = "$ {driver}"/> <name properti = "url" value = "$ {url}"/> <nama properti = "name" nilai = "$ {UserName}"/<nama properti = "name =" never axthame = "$" $ " </Environments> <mappers> <mapper resource = "org/mybatis/example/blogmapper.xml"/> </phappers> </donfiguration>Tentu saja, ada banyak hal yang dapat dikonfigurasi dalam file konfigurasi XML, dan contoh di atas menunjukkan bagian yang paling kritis.
Dapatkan SQLSession dari SQLSessionFactory
Sekarang kita sudah tahu cara mendapatkan objek SQLSessionFactory, berdasarkan wahyu yang sama, kita dapat memperoleh instance SQLSession. Objek SQLSession sepenuhnya berisi semua metode untuk melakukan operasi SQL dengan database sebagai latar belakang. Anda dapat menggunakan instance SQLSession untuk secara langsung menjalankan pernyataan SQL yang dipetakan. Misalnya:
Sesi sqlsession = sqlmapper.opensession (); coba {blog blog = (blog) session.selectone ("org.mybatis.example.blogmapper.selectBlog", 101); } akhirnya {session.close (); }Sekarang ada cara yang lebih sederhana. Gunakan antarmuka yang secara wajar menggambarkan parameter dan pernyataan SQL untuk mengembalikan nilai (seperti BlogMapper.class), sehingga sekarang ini adalah kode yang lebih sederhana dan lebih aman tanpa rentan terhadap string literal dan kesalahan konversi. Misalnya:
Sesi sqlsession = sqlSessionfactory.opensession (); coba {blogmapper mapper = session.getMapper (blogmapper.class); Blog Blog = Mapper.SelectBlog (101); } akhirnya {session.close (); } Jelajahi pernyataan SQL yang dipetakan
Berikut adalah contoh pernyataan pemetaan XML yang harus memenuhi panggilan objek SQLSession dalam contoh di atas.
<? 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"> <capper nomapper = "oMperpace =" mapper. " <pilih id = "selectblog" parameterType = "int" resultType = "blog"> pilih * dari blog di mana id = #{id} </select> </mapper>Dalam namespace "com.mybatis.example.blogmapper", ini mendefinisikan pernyataan pemetaan bernama "SelectBlog", yang memungkinkan Anda untuk memanggil pernyataan pemetaan menggunakan nama yang sepenuhnya memenuhi syarat "org.mybatis.example.blogmapper.selectblog", yang merupakan apa yang kami tulis dalam contoh berikut.
Blog blog = (blog) session.selectone ("org.mybatis.example.blogmapper.selectBlog", 101); Tetapi panggilan berikut memiliki lebih banyak keunggulan:
Antarmuka pemetaan sesuai dengan ruang perintah untuk memetakan file XML, dan metode antarmuka sesuai dengan ID peta SQL yang ditentukan dalam file pemetaan XML. ??????????????????
BlogMapper mapper = session.getMapper (blogmapper.class); Blog Blog = Mapper.SelectBlog (101);
Pertama -tama, itu tidak didasarkan pada teks, jadi lebih aman. Kedua, jika IDE Anda memiliki fungsi penyelesaian kode, Anda dapat menggunakannya untuk memanipulasi pernyataan SQL yang dipetakan. Ketiga, tidak perlu melakukan konversi jenis. Pada saat yang sama, antarmuka blogmapper dapat dijaga tetap sederhana dan tipe nilai pengembalian sangat aman (tipe parameter juga sangat aman).