Κοινή χρήση τεχνολογίας

Ερώτηση συνέντευξης 009-Java-MyBatis

2024-07-11

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

Ερώτηση συνέντευξης 009-Java-MyBatis

Ερωτήσεις αυτοδιαγνωστικού ελέγχου

  • 1. Τι είναι το MyBatis; Σε τι διαφέρει από το Hibernate;
  • 2. Πείτε μου για τη διαδικασία εκτέλεσης του MyBatis;
  • 3. Υποστηρίζει το MyBatis το lazy loading;
  • 4. Ποια είναι η διαφορά μεταξύ της κρυφής μνήμης πρώτου επιπέδου και της κρυφής μνήμης δεύτερου επιπέδου στο MyBatis;
  • 5. Τι είναι η δυναμική SQL στο MyBatis;
  • 6. Πώς να εφαρμόσετε τη σελιδοποίηση στο MyBatis;
  • 7. Πώς υλοποιεί το MyBatis την εισαγωγή δεδομένων μεγάλης κλίμακας στη βάση δεδομένων MySQL;
  • 8. Καταλαβαίνετε το MyBatis-Plus;

Ερώτηση απάντηση

1. Τι είναι το MyBatis; Σε τι διαφέρει από το Hibernate;

Απάντηση: Το MyBatis είναι ένα ημι-αυτόματο πλαίσιο επιπέδου επιμονής που μπορεί να γράψει δηλώσεις SQL μέσω XML ή σχολιασμούς και να αντιστοιχίσει δηλώσεις SQL σε αντικείμενα Java. Το MyBatis δεν δημιουργεί εντελώς αυτόματα εντολές SQL, αλλά επιτρέπει στους προγραμματιστές να γράφουν χειροκίνητα SQL, παρέχοντας έτσι μεγαλύτερη ευελιξία και έλεγχο.
Το Hibernate είναι ένα πλήρως αυτόματο πλαίσιο ORM που μπορεί να δημιουργήσει αυτόματα εντολές SQL και να παρέχει περισσότερες λειτουργίες, αλλά η διαμόρφωσή του είναι επίσης σχετικά πολύπλοκη.

2. Πείτε μου για τη διαδικασία εκτέλεσης του MyBatis;

Απάντηση: Η διαδικασία εκτέλεσης του MyBatis περιλαμβάνει πολλά κύρια βήματα, από την προετοιμασία της διαμόρφωσης έως την εκτέλεση SQL και την επιστροφή αποτελεσμάτων.Η αναλυτική διαδικασία έχει ως εξής

  1. Φόρτωση του αρχείου διαμόρφωσης: καταγράψτε το αρχείο διαμόρφωσης (όπως mybatis-config.xml), το οποίο περιέχει πληροφορίες σύνδεσης βάσης δεδομένων, τοποθεσία του αρχείου αντιστοίχισης και άλλες πληροφορίες.
  2. Δημιουργία SqlSessionFactory: Δημιουργήστε μια παρουσία SqlSessionFactory μέσω του κατασκευαστή SqlSessionFactoryBuilder.
  3. Δημιουργία SqlSession: Λάβετε την παρουσία SqlSession μέσω του SqlSessionFactory, το οποίο παρέχει τις μεθόδους που απαιτούνται για την εκτέλεση εντολών SQL.
  4. Get Mapper: Λάβετε τη συγκεκριμένη παρουσία Mapper μέσω του SqlSession.
  5. Εκτέλεση SQL: Καλέστε τη μέθοδο διασύνδεσης Mapper και το MyBatis δημιουργεί και εκτελεί συγκεκριμένες εντολές SQL με βάση τις πληροφορίες αντιστοίχισης στο αρχείο διαμόρφωσης.
  6. Επεξεργασία του συνόλου αποτελεσμάτων: Το MyBatis αντιστοιχίζει το σύνολο αποτελεσμάτων που επιστρέφεται από τη βάση δεδομένων σε ένα αντικείμενο Java και το επιστρέφει στον καλούντα.
  7. Διαχείριση συναλλαγών: Εάν έχει διαμορφωθεί ένας διαχειριστής συναλλαγών, το SqlSession χειρίζεται την έναρξη, τη δέσμευση ή την επαναφορά των συναλλαγών.
  8. Κλείσιμο SqlSession: Αποδέσμευση πόρων.
    // 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();
    }