Partage de technologie

Question d'entretien 009-Java-MyBatis

2024-07-11

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

Question d'entretien 009-Java-MyBatis

Questions d'auto-test

  • 1. Qu'est-ce que MyBatis ? En quoi est-ce différent d’Hibernate ?
  • 2. Parlez-moi du processus d'exécution de MyBatis ?
  • 3. MyBatis prend-il en charge le chargement paresseux ?
  • 4. Quelle est la différence entre le cache de premier niveau et le cache de deuxième niveau dans MyBatis ?
  • 5. Qu'est-ce que le SQL dynamique dans MyBatis ?
  • 6. Comment implémenter la pagination dans MyBatis ?
  • 7. Comment MyBatis implémente-t-il l'insertion de données à grande échelle dans la base de données MySQL ?
  • 8. Comprenez-vous MyBatis-Plus ?

Question Réponse

1. Qu'est-ce que MyBatis ? En quoi est-ce différent d’Hibernate ?

Réponse : MyBatis est un framework de couche de persistance semi-automatisé qui peut écrire des instructions SQL via XML ou des annotations et mapper des instructions SQL à des objets Java. MyBatis ne génère pas automatiquement des instructions SQL, mais permet aux développeurs d'écrire manuellement du SQL, offrant ainsi une plus grande flexibilité et un meilleur contrôle.
Hibernate est un framework ORM entièrement automatique qui peut générer automatiquement des instructions SQL et fournir plus de fonctions, mais sa configuration est également relativement complexe.

2. Parlez-moi du processus d'exécution de MyBatis ?

Réponse : Le processus d'exécution de MyBatis comprend plusieurs étapes principales, de l'initialisation de la configuration à l'exécution de SQL et au renvoi des résultats.Le processus détaillé est le suivant

  1. Chargez le fichier de configuration : enregistrez le fichier de configuration (tel que mybatis-config.xml), qui contient les informations de connexion à la base de données, l'emplacement du fichier de mappage et d'autres informations.
  2. Créer SqlSessionFactory : créez une instance SqlSessionFactory via le constructeur SqlSessionFactoryBuilder.
  3. Créer SqlSession : obtenez l'instance SqlSession via SqlSessionFactory, qui fournit les méthodes requises pour exécuter les instructions SQL.
  4. Obtenir Mapper : obtenez l’instance spécifique de Mapper via SqlSession.
  5. Exécuter SQL : appelez la méthode d'interface Mapper et MyBatis génère et exécute des instructions SQL spécifiques basées sur les informations de mappage dans le fichier de configuration.
  6. Traitement du jeu de résultats : MyBatis mappe le jeu de résultats renvoyé par la base de données dans un objet Java et le renvoie à l'appelant.
  7. Gestion des transactions : si un gestionnaire de transactions est configuré, SqlSession gère le démarrage, la validation ou l'annulation des transactions.
  8. Fermez SqlSession : libérez les ressources.
    // 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();
    }