Teknologian jakaminen

Haastattelukysymys 009-Java-MyBatis

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Haastattelukysymys 009-Java-MyBatis

Itsetestauskysymykset

  • 1. Mikä MyBatis on? Miten se eroaa lepotilasta?
  • 2. Kerro minulle MyBatisin suoritusprosessista?
  • 3. Tukeeko MyBatis laiska latausta?
  • 4. Mitä eroa on ensimmäisen tason ja toisen tason välimuistin välillä MyBatisissa?
  • 5. Mikä on dynaaminen SQL MyBatisissa?
  • 6. Miten sivutus toteutetaan MyBatisissa?
  • 7. Kuinka MyBatis toteuttaa suuren mittakaavan tietojen lisäämisen MySQL-tietokantaan?
  • 8. Ymmärrätkö MyBatis-Plusia?

Kysymys Vastaus

1. Mikä MyBatis on? Miten se eroaa lepotilasta?

Vastaus: MyBatis on puoliautomaattinen pysyvyyskerroskehys, joka voi kirjoittaa SQL-lauseita XML:n kautta tai huomautuksia ja yhdistää SQL-käskyjä Java-objekteihin. MyBatis ei luo täysin automaattisesti SQL-lauseita, mutta antaa kehittäjille mahdollisuuden kirjoittaa SQL:ää manuaalisesti, mikä lisää joustavuutta ja hallintaa.
Hibernate on täysin automaattinen ORM-kehys, joka voi automaattisesti luoda SQL-käskyjä ja tarjota lisää toimintoja, mutta sen konfigurointi on myös suhteellisen monimutkainen.

2. Kerro minulle MyBatisin suoritusprosessista?

Vastaus: MyBatisin suoritusprosessi sisältää useita päävaiheita konfiguroinnin alustamisesta SQL:n suorittamiseen ja tulosten palauttamiseen.Yksityiskohtainen prosessi on seuraava

  1. Lataa määritystiedosto: tallenna asetustiedosto (kuten mybatis-config.xml), joka sisältää tietokantayhteystiedot, kartoitustiedoston sijainnin ja muita tietoja.
  2. Luo SqlSessionFactory: Luo SqlSessionFactory-ilmentymä SqlSessionFactoryBuilder-konstruktorin avulla.
  3. Luo SqlSession: Hanki SqlSession-ilmentymä SqlSessionFactorysta, joka tarjoaa SQL-käskyjen suorittamiseen tarvittavat menetelmät.
  4. Hanki Mapper: Hanki tietty Mapper-instanssi SqlSessionin kautta.
  5. Suorita SQL: Kutsu Mapper-rajapintamenetelmää, jolloin MyBatis luo ja suorittaa tietyt SQL-käskyt määritystiedoston kartoitustietojen perusteella.
  6. Tulosjoukon käsittely: MyBatis kartoittaa tietokannan palauttaman tulosjoukon Java-objektiksi ja palauttaa sen soittajalle.
  7. Tapahtuman hallinta: Jos tapahtumanhallinta on määritetty, SqlSession käsittelee tapahtumien aloituksen, sitomisen tai palautuksen.
  8. Sulje SqlSession: Vapauta resurssit.
    // 1. 加载配置文件
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    
    // 2. 创建SqlSessionFactory
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    
    // 3. 创建SqlSession
    try (SqlSession session = sqlSessionFactory.openSession()) {
        
        // 4. 获取Mapper
        UserMapper mapper = session.getMapper(UserMapper.class);
    
        // 5. 执行SQL
        User user = mapper.selectUser(1);
    
        // 6. 处理结果集
        System.out.println(user);
    
        // 7. 管理事务(如果需要)
        session.commit();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        // 8. 关闭SqlSession
        session.close();
    }