Rumah > Java > javaTutorial > teks badan

Bagaimana untuk mengkonfigurasi fail pemetaan Mapper.xml untuk permulaan Java Mybatis

王林
Lepaskan: 2023-05-03 23:10:09
ke hadapan
1422 orang telah melayarinya
Kata Pengantar:

Selepas menghuraikan fail konfigurasi global, langkah seterusnya ialah menghuraikan fail Mapper, yang dihuraikan melalui XMLMapperBuilder

Parse Mapper Entri fail

Kaedah parse() XMLMapperBuilder:

public void parse() {
    if (!configuration.isResourceLoaded(resource)) {
      configurationElement(parser.evalNode("/mapper"));
      configuration.addLoadedResource(resource);
      bindMapperForNamespace();
    }

    parsePendingResultMaps();
    parsePendingCacheRefs();
    parsePendingStatements();
  }
Salin selepas log masuk
  • 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 <resultMap> tag

  • Mengendalikan penghuraian gagal <cache-ref> tag

  • Kendalikan penghuraian Pernyataan SQL yang gagal

Fokus pada kaedah konfigurasiElement() kelas XMLMapperBuilder

Hunting fail Mapper

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&#39;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 &#39;" + resource + "&#39;. Cause: " + e, e);
    }
  }
Salin selepas log masuk
  • Menghuraikan atribut ruang nama bagi fail Mapper

  • Menghuraikan <cache-ref> tag, yang digunakan untuk merujuk cache Cache lain

  • Menghuraikan tag <cache> 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

  • Menghuraikan teg

    , teg ini telah ditinggalkan, secara amnya gunakan <parameterMap> Nama kelas yang mentakrifkan parameter parameterType

  • menghuraikan teg

    . 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 <resultMap> Teg ini menghasilkan objek ResultMapping, kemudian dapatkan atribut seperti id extends, bina objek ResultMapResolver dan buat objek ResultMap untuk disimpan Koleksi .resultMaps <constructor>、<id>、<result>、<collection>

  • untuk menghuraikan teg sql ini digunakan untuk mentakrifkan serpihan sql berulang disimpan dalam Configuration.sqlFragments

  • <.> menghuraikan
  • dan nod SQL yang lain Anda mesti biasa dengan teg ini adalah pernyataan SQL kami untuk menambah, memadam, mengubah suai dan membuat pertanyaan Ia akan menghuraikan teg

    terlebih dahulu. dan kemudian menghuraikan teg <select>、<insert>、<update>、<delete>, 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 <include> <selectKey>

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan