Rumah  >  Artikel  >  Java  >  Bagaimana untuk mengkonfigurasi fail pemetaan Mapper.xml untuk permulaan Java Mybatis

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

王林
王林ke hadapan
2023-05-03 23:10:091381semak imbas
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();
  }
  • 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

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'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

  • Menghuraikan teg

    , teg ini telah ditinggalkan, secara amnya gunakan 4fb23b7f5df2ee11743b998ba01c37fd 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 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

  • 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 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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam