Berbagi teknologi

Pertanyaan wawancara 009-Java-MyBatis

2024-07-11

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

Pertanyaan wawancara 009-Java-MyBatis

Pertanyaan tes mandiri

  • 1. Apa itu MyBatis? Apa bedanya dengan Hibernasi?
  • 2. Ceritakan tentang proses eksekusi MyBatis?
  • 3. Apakah MyBatis mendukung pemuatan lambat?
  • 4. Apa perbedaan antara cache tingkat pertama dan cache tingkat kedua di MyBatis?
  • 5. Apa itu SQL dinamis di MyBatis?
  • 6. Bagaimana cara mengimplementasikan paging di MyBatis?
  • 7. Bagaimana MyBatis mengimplementasikan penyisipan data skala besar ke dalam database MySQL?
  • 8. Apakah Anda memahami MyBatis-Plus?

Jawaban pertanyaan

1. Apa itu MyBatis? Apa bedanya dengan Hibernasi?

Jawaban: MyBatis adalah kerangka lapisan persistensi semi-otomatis yang dapat menulis pernyataan SQL melalui XML atau anotasi dan memetakan pernyataan SQL ke objek Java. MyBatis tidak sepenuhnya menghasilkan pernyataan SQL secara otomatis, tetapi memungkinkan pengembang untuk menulis SQL secara manual, sehingga memberikan fleksibilitas dan kontrol yang lebih besar.
Hibernate adalah kerangka kerja ORM otomatis yang dapat secara otomatis menghasilkan pernyataan SQL dan menyediakan lebih banyak fungsi, namun konfigurasinya juga relatif kompleks.

2. Ceritakan tentang proses eksekusi MyBatis?

Jawaban: Proses eksekusi MyBatis mencakup beberapa langkah utama, mulai dari inisialisasi konfigurasi hingga eksekusi SQL dan pengembalian hasil.Proses detailnya adalah sebagai berikut

  1. Muat file konfigurasi: catat file konfigurasi (seperti mybatis-config.xml), yang berisi informasi koneksi database, lokasi file pemetaan, dan informasi lainnya.
  2. Buat SqlSessionFactory: Buat instance SqlSessionFactory melalui konstruktor SqlSessionFactoryBuilder.
  3. Buat SqlSession: Dapatkan instance SqlSession melalui SqlSessionFactory, yang menyediakan metode yang diperlukan untuk menjalankan pernyataan SQL.
  4. Dapatkan Mapper: Dapatkan instance Mapper spesifik melalui SqlSession.
  5. Jalankan SQL: Panggil metode antarmuka Mapper, dan MyBatis menghasilkan dan mengeksekusi pernyataan SQL tertentu berdasarkan informasi pemetaan dalam file konfigurasi.
  6. Memproses kumpulan hasil: MyBatis memetakan kumpulan hasil yang dikembalikan oleh database ke dalam objek Java dan mengembalikannya ke pemanggil.
  7. Manajemen transaksi: Jika manajer transaksi dikonfigurasi, SqlSession menangani permulaan, penerapan, atau pengembalian transaksi.
  8. Tutup SqlSession: Lepaskan sumber daya.
    // 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();
    }