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);
相关文章
相关标签/搜索