Java API
Sekarang Anda tahu cara mengkonfigurasi mybatis dan membuat file pemetaan, Anda siap untuk meningkatkan keterampilan Anda. Mybatis 'Java API adalah tempat Anda menuai upaya yang telah Anda lakukan. Seperti yang akan Anda lihat, dibandingkan dengan JDBC, Mybatis sangat menyederhanakan kode Anda dan membuatnya sederhana, mudah dimengerti dan dipelihara. Mybatis 3 telah memperkenalkan banyak peningkatan penting untuk membuat pemetaan SQL lebih baik.
Mybatis 3 dibangun di atas API konfigurasi Java yang komprehensif dan kuat. API konfigurasi ini adalah dasar dari konfigurasi mybatis berbasis XML dan juga merupakan dasar dari konfigurasi berbasis anotasi baru.
Anotasi memberikan cara sederhana untuk menerapkan pernyataan pemetaan sederhana tanpa memperkenalkan banyak overhead.
Target dan label yang sesuai dari anotasi umum mybatis ditunjukkan pada tabel:
| anotasi | Target | Tag XML yang sesuai |
| @Cachenamespace | baik | <cache> |
| @Cachenamespaceref | baik | <cacheref> |
| @Results | metode | <RancesMap> |
| @Hasil | metode | <rence> <ding> |
| @Satu | metode | <sosional> |
| @Banyak | metode | <molly> |
@Menyisipkan @Memperbarui @Menghapus | metode | <sertak> <dendate> <apelet> |
@InSertProvider @UpdateProvider @DeleteProvider @SelectProvider | metode | <sertak> <dendate> <apelet> <CILECT> Memungkinkan penciptaan SQL dinamis |
| @Param | parameter | N/a |
| @Options | metode | Sifat pernyataan pemetaan |
| @memilih | metode | <CILECT> |
Arti anotasi umum mybatis:
@Cachenamespace (size = 512): Menentukan penggunaan cache bawaan dalam namespace ini
@Options (usecache = true, flushcache = false, timeout = 10000): Sakelar opsi untuk beberapa kueri
@Param ("id"): Alias yang memenuhi syarat secara global, posisi parameter kueri dalam pernyataan SQL tidak lagi dalam bentuk 0, 1, 2, 3 ..., subskrip berurutan, tetapi nama yang sesuai, yang didefinisikan di sini.
@Results adalah array dengan @Result sebagai elemen. @Result mewakili hubungan pemetaan bidang atribut tunggal. ID = Benar berarti bahwa bidang ID adalah kunci utama. Mybatis akan memberikan optimasi yang diperlukan selama kueri. Semua @Result dalam array membentuk hubungan pemetaan dari satu catatan, sedangkan @Results adalah kumpulan satu catatan. Selain itu, ada anotasi yang sangat penting @ResultMap, yang mirip dengan @Results
@Select ("Pernyataan kueri"), @insert ("Tambah pernyataan"), @update ("Pernyataan Perbarui") dan @Delete ("Hapus Pernyataan") mewakili operasi untuk meminta, menambah, memperbarui, dan menghapus data.
Selanjutnya, mari kita lihat penggunaan anotasi.
(1) Penggunaan anotasi reguler (tidak diperlukan operasi peta khusus):
Contoh 1
// Tambahkan penulis @insert ("InsertInto Author (nama pengguna, kata sandi, email, alamat, telepon)" +"values (#{username},#{kata sandi},#{email},#{alamat},#{phone})") @options (USEGENTUREDKEYS = true, keyproperty = "authid", fleaThor ", FLUADE = 10000) FALUCE = true, keyproperty =" authid ", FLUSHOM = 1000) author = 10000) author = 10000 author = 10000) pengarang); // hapus penulis @delete ("DELETEFROM AURTER WHERE ID = #{ID}")@options (flushCache = false, timeout = 10000) public voidDeleteAuthor (@param ("id") int id); Kiat: Anda perlu mendaftarkan mapper sebelum memanggil metode ini:
sessionfactory.getConfiguration (). AddMapper (testInteger.class);
Atau konfigurasikan <mapper> </mapper> di mapper.xml
Setelah mendaftar, dapatkan antarmuka mapper untuk dihubungi secara normal
(2) Jika Anda perlu menyesuaikan peta, Anda dapat menggunakan anotasi hasil:
Contoh 2
//Query all author information @Select("select * from author")@Options(flushCache = false, timeout = 10000,useCache=true)@Results( value = { @Result(id=true,column="id",property="id"), @Result(property="username",column="username"), @Result(property="password",column="password"), @Result (properti = "email", kolom = "email"), @result (properti = "alamat", kolom = "alamat"), @result (properti = "telepon", kolom = "telepon")}) Daftar publik <shoror> findAuthors (); // query informasi dari penulis tertentu @select ("pilih * dari penulis di mana id =#{{{" {"{" {"{" {"{" {"{" {{"{" {{"{{{" {{{{{{{" =10000,useCache=true)@Results( value = {@Result(id=true,column="id",property="id"), @Result(property="username",column="username"), @Result(property="password",column="password"), @Result(property="email",column="email"),@Result(property="address",column="address"), @Result (properti = "telepon", kolom = "telepon")}) penulis publik findauthorbyId (@param ("id") intid); Jika struktur set hasil yang dikembalikan oleh beberapa kueri adalah sama, Anda dapat menggunakan @ResultMap untuk menentukan struktur pengembalian. Menggunakan anotasi ini, Anda harus mengkonfigurasi hasil Hasil Anda di file pemetaan Anda. @ResultMap (value = "name") adalah ID resultMap dalam file pemetaan. Dengan cara ini, Anda perlu mendaftarkan file konfigurasi Anda di <mapper> dan menggunakan @ResultMap di antarmuka untuk merujuk ID RACKMAP dalam file konfigurasi sebagai berikut:
Contoh 3
Selfmapper.xml
// Setiap baris rekaman adalah hashmap <resultMaptype = "java.util.hashmap" id = "selfmap"> <resultProperty = "n" kolom = "city_name"/> ....... </resultMap>
Selfmapper.java:
@Select ("SELECT A.ID, B.NAME, C.STATE DARI ............")@resultMap (value = "selfmap") Daftar publik <HashMap> sel (); // Perhatikan bahwa koleksi daftar yang dikembalikan Kasus Lengkap
Kode antarmuka
paket com.obtk.dao; impor java.util.hashmap; impor java.util.list; impor org.apache.ibatis.annotations.insert; impor org.apache.ibatis.annotations.Options; impor org.apache.ibatis.annotations.Results; impor org.apache.ibatis.annotations.Results; impor org.apache.ibatis.annotations.Select; impor com.obtk.entitys.studentity; Antarmuka Publik ISTudentDAO {@insert ("Sisipkan ke Siswa (Stuname, Jenis Kelamin, Usia, Alamat, Deptidd)"+ "Values (#{Stuname},#{gender},#{usia},#{alamat},#{Deptid})") @options (USegeneratedkeys = {deptid} ") @options (Usegeneratedkeys = {deptid}) @options (USegeneratedkeys = {deptid}) @options (USegeneratedkeys = {deptid} ( Stu); @Select ("Pilih * dari siswa di mana stuid =#{stuid}") @results (// selama nilai properti yang tidak konsisten dengan nama kolom dikonfigurasi, value = {@result (kolom = "gender", properti = "sex")}) studententity querybyid (integer stuid); @Select ("Pilih * dari siswa di mana gender =#{qqq} dan alamat =#{Area}") @results (// Selama nilai properti konfigurasi = {@result (kolom = "gender", properti = "sex")}) Daftar <spinuchentity> querybymany (hashmapapap); // Konfigurasi Anotasi Asosiasi Universal @Select ("SELECT * DARI SISWA S BAWAH DEPARTEMEN DE" +"pada s.deptidd = d.deptid" +"di mana s.gender =#{sex}" +"dan d.departname =#{deptname}") Daftar <hashmap> querybyqnn (hashmapap); } Kasus 1 kueri objek
paket com.obtk.test; Impor org.apache.Ibatis.Session.SQLSession; impor org.apache.ibatis.Session.SQLSessionFactory; impor com.obtk.dao.istudentdao; impor com.obtk.entitys.studentity; impor com.obtk.utils.mybatisutil; kelas publik annoselectone {public static void main (string [] args) {sqlSession session = null; Pabrik SQLSessionFactory = NULL; coba {session = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // Hubungkan konfigurasi SQL di antarmuka dengan core configuration factory.getConfiguration (). AddMapper (iStudentdao.class); IStudentdao studao = session.getMapper (iStudentdao.class); StudentEntity Stu = Studao.QueryById (129); System.out.println (stu.getstuname ()+","+stu.getsex ()+","+stu.getAddress ()+","+stu.getStuid ()); } catch (Exception e) {E.PrintStackTrace (); } akhirnya {mybatisutil.closesession (); }}} Kasus 2 Lulus Banyak Parameter dan Permintaan Banyak Objek
paket com.obtk.test; impor java.util.hashmap; impor java.util.list; impor java.util.map; Impor org.apache.Ibatis.Session.SQLSession; impor org.apache.ibatis.Session.SQLSessionFactory; impor com.obtk.dao.istudentdao; impor com.obtk.entitys.studentity; impor com.obtk.utils.mybatisutil; kelas publik annoselectmany {public static void main (string [] args) {sqlSession session = null; Pabrik SQLSessionFactory = NULL; coba {session = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // Hubungkan konfigurasi SQL di antarmuka dengan core configuration factory.getConfiguration (). AddMapper (iStudentdao.class); IStudentdao studao = session.getMapper (iStudentdao.class); Hashmap parammap = hashmap baru (); parammap.put ("qqq", "pria"); parammap.put ("area", "asrama siswa"); Daftar <spinitionEntity> stulist = studao.querybymany (parammap); untuk (studentEntity stu: stulist) {system.out.println (stu.getstuname ()+","+stu.getsex ()+","+stu.getAddress ()+","+stu.getStuid ()); }} catch (Exception e) {e.printstacktrace (); } akhirnya {mybatisutil.closesession (); }}} Kasus 3 Tambahkan Objek
paket com.obtk.test; Impor org.apache.Ibatis.Session.SQLSession; impor org.apache.ibatis.Session.SQLSessionFactory; impor com.obtk.dao.istudentdao; impor com.obtk.entitys.studentity; impor com.obtk.utils.mybatisutil; kelas publik annoSavetest {public static void main (string [] args) {sqlSession session = null; Pabrik SQLSessionFactory = NULL; coba {session = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // Mengaitkan konfigurasi SQL di antarmuka dengan file core configuration factory.getConfiguration (). AddMapper (iStudentdao.class); IStudentdao studao = session.getMapper (iStudentdao.class); Studententity Stu = StudentEntity baru ("Testc#", "Male", 21, "Pluto"); Stu.setdeptidd (10); int result = studao.saveOne (Stu); session.commit (); System.out.println ("Simpan berhasil:"+stu.getStuid ()); } catch (Exception e) {E.PrintStackTrace (); } akhirnya {mybatisutil.closesession (); }}}Kasus 4 Gunakan hashmap untuk kueri asosiasi
paket com.obtk.test; impor java.util.hashmap; impor java.util.list; impor java.util.map; Impor org.apache.Ibatis.Session.SQLSession; impor org.apache.ibatis.Session.SQLSessionFactory; impor com.obtk.dao.istudentdao; impor com.obtk.entitys.studentity; impor com.obtk.utils.mybatisutil; kelas publik annojooinqnn {public static void main (string [] args) {sqlSession session = null; Pabrik SQLSessionFactory = NULL; coba {// 4. Dapatkan sesi sesi = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // Hubungkan konfigurasi SQL di antarmuka dengan core configuration factory.getConfiguration (). AddMapper (iStudentdao.class); IStudentdao studao = session.getMapper (iStudentdao.class); Hashmap parammap = hashmap baru (); parammap.put ("seks", "pria"); parammap.put ("Deptname", "Sistem Komputer"); // 5. Eksekusi Daftar Pernyataan <HashMap> stulist = Studao.QueryByQnn (parammap); untuk (hashmap theobj: stulist) {system.out.println (theObj.get ("stuid")+","+theObj.get ("gender")+","+theObj.get ("stuname")+","+theObj.get ("departName")); }} catch (Exception e) {e.printstacktrace (); } akhirnya {mybatisutil.closesession (); }}}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.