Condivisione della tecnologia

Domanda di intervista 009-Java-MyBatis

2024-07-11

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

Domanda di intervista 009-Java-MyBatis

Domande di autotest

  • 1. Cos'è MyBatis? In cosa differisce dall'ibernazione?
  • 2. Parlami del processo di esecuzione di MyBatis?
  • 3. MyBatis supporta il caricamento lento?
  • 4. Qual è la differenza tra la cache di primo livello e la cache di secondo livello in MyBatis?
  • 5. Cos'è l'SQL dinamico in MyBatis?
  • 6. Come implementare il cercapersone in MyBatis?
  • 7. In che modo MyBatis implementa l'inserimento di dati su larga scala nel database MySQL?
  • 8. Conosci MyBatis-Plus?

Domanda risposta

1. Cos'è MyBatis? In cosa differisce dall'ibernazione?

Risposta: MyBatis è un framework a livello di persistenza semiautomatico in grado di scrivere istruzioni SQL tramite XML o annotazioni e mappare istruzioni SQL su oggetti Java. MyBatis non genera istruzioni SQL in modo completamente automatico, ma consente agli sviluppatori di scrivere manualmente SQL, fornendo così maggiore flessibilità e controllo.
Hibernate è un framework ORM completamente automatico in grado di generare automaticamente istruzioni SQL e fornire più funzioni, ma anche la sua configurazione è relativamente complessa.

2. Parlami del processo di esecuzione di MyBatis?

Risposta: il processo di esecuzione di MyBatis include diversi passaggi principali, dall'inizializzazione della configurazione all'esecuzione di SQL e alla restituzione dei risultati.Il processo dettagliato è il seguente

  1. Carica il file di configurazione: registra il file di configurazione (come mybatis-config.xml), che contiene informazioni sulla connessione al database, posizione del file di mappatura e altre informazioni.
  2. Crea SqlSessionFactory: crea un'istanza SqlSessionFactory tramite il costruttore SqlSessionFactoryBuilder.
  3. Crea SqlSession: ottieni l'istanza SqlSession tramite SqlSessionFactory, che fornisce i metodi necessari per eseguire istruzioni SQL.
  4. Ottieni Mapper: ottieni l'istanza specifica di Mapper tramite SqlSession.
  5. Esegui SQL: chiama il metodo dell'interfaccia Mapper e MyBatis genera ed esegue istruzioni SQL specifiche in base alle informazioni di mappatura nel file di configurazione.
  6. Elaborazione del set di risultati: MyBatis mappa il set di risultati restituito dal database in un oggetto Java e lo restituisce al chiamante.
  7. Gestione delle transazioni: se è configurato un gestore delle transazioni, SqlSession gestisce l'avvio, il commit o il rollback delle transazioni.
  8. Chiudi SqlSession: rilascia risorse.
    // 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();
    }