Rumah >Java >javaTutorial >Bagaimana untuk mengkonfigurasi fail pemetaan Mapper.xml untuk permulaan Java Mybatis
Selepas menghuraikan fail konfigurasi global, langkah seterusnya ialah menghuraikan fail Mapper, yang dihuraikan melalui XMLMapperBuilder
Kaedah parse() XMLMapperBuilder:
public void parse() { if (!configuration.isResourceLoaded(resource)) { configurationElement(parser.evalNode("/mapper")); configuration.addLoadedResource(resource); bindMapperForNamespace(); } parsePendingResultMaps(); parsePendingCacheRefs(); parsePendingStatements(); }
Jika fail Mapper semasa belum dimuatkan, panggil kaedah configurationElement() untuk menghuraikan fail Mapper
ditambahkan pada koleksi Configuration.loadedResources untuk mengelakkan pemuatan berulang
Dapatkan antara muka Mapper yang sepadan dengan fail Mapper dan daftarkannya
Mengendalikan penghuraian gagal 68a9ca67c267b134c127fbeac6659d23
tag
Mengendalikan penghuraian gagal c9f60baecdceda902422ce5608e73ae9
tag
Kendalikan penghuraian Pernyataan SQL yang gagal
Fokus pada kaedah konfigurasiElement() kelas XMLMapperBuilder
The kaedah configurationElement() kelas MLMapperBuilder:
private void configurationElement(XNode context) { try { String namespace = context.getStringAttribute("namespace"); if (namespace == null || namespace.isEmpty()) { throw new BuilderException("Mapper's namespace cannot be empty"); } builderAssistant.setCurrentNamespace(namespace); cacheRefElement(context.evalNode("cache-ref")); cacheElement(context.evalNode("cache")); parameterMapElement(context.evalNodes("/mapper/parameterMap")); resultMapElements(context.evalNodes("/mapper/resultMap")); sqlElement(context.evalNodes("/mapper/sql")); buildStatementFromContext(context.evalNodes("select|insert|update|delete")); } catch (Exception e) { throw new BuilderException("Error parsing Mapper XML. The XML location is '" + resource + "'. Cause: " + e, e); } }
Menghuraikan atribut ruang nama bagi fail Mapper
Menghuraikan c9f60baecdceda902422ce5608e73ae9
tag, yang digunakan untuk merujuk cache Cache lain
Menghuraikan tag 62aecd17e676a41d3547c3bf97bb07b0
Teg ini digunakan untuk mendayakan cache peringkat kedua Mybatis secara lalai. Dalam kaedah ini, selesaikan kepada kelas MapperBuilderAssistant untuk melengkapkan penciptaan Cache , disimpan dalam koleksi Configuration.caches, kunci koleksi ialah ruang nama dan nilainya ialah objek Cache
, teg ini telah ditinggalkan, secara amnya gunakan 4fb23b7f5df2ee11743b998ba01c37fd
Nama kelas yang mentakrifkan parameter parameterType
. Tag ini ialah peta hasil. Semua sub-tag di bawah tegnya dihuraikan dan disimpan dalam objek ResultMap kemudian menghuraikan sub-teg teg resultMap, termasuk teg seperti 68a9ca67c267b134c127fbeac6659d23
Teg ini menghasilkan objek ResultMapping, kemudian dapatkan atribut seperti id extends, bina objek ResultMapResolver dan buat objek ResultMap untuk disimpan Koleksi .resultMaps 3edd161182fff2dd0b855ad5d33f9b63、53384f78b45ee9f1e3082cf378b9c5b4、350c21220441cc2f18e31a24358fe33a、8a69e10c947129bb1dfe1f677169415f
terlebih dahulu. dan kemudian menghuraikan teg 221f08282418e2996498697df914ce4e、3cdbca7b6e47052f0af62aa0d4c6123a、48dd0c1f550330068948da43aff71ce0、5cc62b85a20462d19109e58cc4ad0bf9
, disimpan ke koleksi Configuration.keyGenerators, dan akhirnya mencipta objek SqlSource melalui kaedah LanguageDriver.createSqlSource() untuk membina objek MappedStatement sqlSource of MappedStatement merekodkan pernyataan sql dan sqlCommandTy. jenis pernyataan SQL, yang disimpan dalam koleksi Configuration.mappedStatements dcf91641426a34cf32ecc36140f28baf
d81480a879ba657d83c408e5fa1b948b
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi fail pemetaan Mapper.xml untuk permulaan Java Mybatis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!