Hibernate 與 MyBatis 的理解

 從架構來整合學過的Hibernate 與 MyBatisjava

(一)Hibernate sql

         (1)環境搭建數據庫

         (2)配置hibernate.cfg.xml文件session

         (3)編寫類與hibernate的映射文件mybatis

         (4)Dao層實現經過對象操做數據庫架構

//讀取配置文件  
        Configuration cfg = new Configuration().configure();  
        //建立SessionFactory工廠
        SessionFactory factory = cfg.buildSessionFactory();  
        
        Session session = null;  
        try{  
            session = factory.openSession();  
            //開啓事務  
            session.beginTransaction();  
              
            User user = new User(str1,str2,20); //實體對象
            //操做函數
            session.save(user);  
            //提交事務  
            session.getTransaction().commit();  
              
        }catch(Exception e){  
            e.printStackTrace();  
            //回滾事務  
            session.getTransaction().rollback();  
        }finally{  
            if(session != null){  
                if(session.isOpen()){  
                    //關閉session  
                    session.close();  
                }  
            }  
        }

 

(二)MyBatisapp

         (1)環境搭建函數

         (2)配置Config.xml文件ui

         (3)編寫類與hibernate的映射文件spa

         (4)Dao層實現經過對象操做數據庫

//mybatis的配置文件
        String resource = "conf.xml";

        //使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件)
        InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);

        //構建sqlSession的工廠
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

        //使用MyBatis提供的Resources類加載mybatis的配置文件(它也加載關聯的映射文件)
        //Reader reader = Resources.getResourceAsReader(resource); 

        //構建sqlSession的工廠
        //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);

        //建立能執行映射文件中sql的sqlSession
        SqlSession session = sessionFactory.openSession();
        
        // 映射sql的標識字符串,
        // me.gacl.mapping.userMapper是userMapper.xml文件中mapper標籤的namespace屬性的值,
        // getUser是select標籤的id屬性值,經過select標籤的id屬性值就能夠找到要執行的SQL
        String statement = "me.gacl.mapping.userMapper.getUser";//映射sql的標識字符串

        //執行查詢返回一個惟一user對象的sql
        User user = session.selectOne(statement, 1);
相關文章
相關標籤/搜索