प्रौद्योगिकी साझेदारी

साक्षात्कार प्रश्न 009-जावा-मायबति

2024-07-11

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

साक्षात्कार प्रश्न 009-जावा-मायबति

आत्मपरीक्षणप्रश्ना

  • 1. ममबतिः किम् ? हाइबरनेट् इत्यस्मात् कथं भिन्नम् ?
  • 2. MyBatis इत्यस्य निष्पादनप्रक्रियायाः विषये कथयतु?
  • 3. MyBatis आलस्यपूर्णभारस्य समर्थनं करोति वा?
  • 4. MyBatis इत्यस्मिन् प्रथमस्तरीयसञ्चयस्य द्वितीयस्तरीयसञ्चयस्य च मध्ये किं भेदः अस्ति?
  • 5. MyBatis इत्यस्मिन् dynamic SQL किम् ?
  • 6. MyBatis मध्ये पेजिंग् कथं कार्यान्वितुं शक्यते?
  • 7. MyBatis MySQL दत्तांशकोशे बृहत्-परिमाणेन आँकडा-प्रवेशं कथं कार्यान्वितं करोति?
  • 8. भवन्तः MyBatis-Plus इति अवगच्छन्ति वा?

प्रश्नोत्तरम्

1. ममबतिः किम् ? हाइबरनेट् इत्यस्मात् कथं भिन्नम् ?

उत्तरम् : MyBatis एकः अर्धस्वचालितः स्थायित्वस्तररूपरेखा अस्ति यः XML अथवा एनोटेशनद्वारा SQL कथनानि लिखितुं शक्नोति तथा च SQL कथनानि Java वस्तुषु मैप् कर्तुं शक्नोति। MyBatis पूर्णतया स्वयमेव SQL कथनानि न जनयति, परन्तु विकासकान् SQL मैन्युअल् रूपेण लिखितुं शक्नोति, अतः अधिकं लचीलतां नियन्त्रणं च प्रदाति ।
Hibernate इति पूर्णतया स्वचालितं ORM-रूपरेखा अस्ति यत् स्वयमेव SQL-कथनानि जनयितुं अधिकानि कार्याणि च प्रदातुं शक्नोति, परन्तु तस्य विन्यासः अपि तुल्यकालिकरूपेण जटिलः अस्ति ।

2. MyBatis इत्यस्य निष्पादनप्रक्रियायाः विषये कथयतु?

उत्तरम् : MyBatis इत्यस्य निष्पादनप्रक्रियायां विन्यासप्रारम्भात् आरभ्य SQL निष्पादनपर्यन्तं परिणामान् प्रत्यागन्तुं च अनेकाः मुख्याः चरणाः सन्ति ।विस्तृतप्रक्रिया यथा

  1. विन्याससञ्चिकां लोड् कुर्वन्तु: विन्याससञ्चिकां (यथा mybatis-config.xml) अभिलेखयन्तु, यस्मिन् दत्तांशकोशसंयोजनसूचना, मैपिंगसञ्चिकास्थानं अन्यसूचनाः च सन्ति ।
  2. SqlSessionFactory रचयन्तु: SqlSessionFactoryBuilder कन्स्ट्रक्टर् इत्यस्य माध्यमेन SqlSessionFactory उदाहरणं रचयन्तु ।
  3. SqlSession रचयन्तु: SqlSessionFactory इत्यस्य माध्यमेन SqlSession उदाहरणं प्राप्नुवन्तु, यत् SQL कथनानां निष्पादनार्थं आवश्यकानि पद्धतीनि प्रदाति ।
  4. Get Mapper: SqlSession इत्यस्य माध्यमेन विशिष्टं Mapper उदाहरणं प्राप्नुवन्तु ।
  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();
    }