Hibernate框架学习之初识Hibernate

Hibernate框架学习之初识Hibernate

Hibernate的简单介绍

Hibernate是一个开源的优秀的ORM(Object Relational Mapping、对象关系映射)框架,对JDBC进行了轻量级的对象封装,架起了面向对象开发以及SQL之间的桥梁。Hibernate可以通过配置,自动生成对应的SQL语句,自动执行,并且对结果进行封装,将得到的对象返回给用户。有了Hibernate框架,开发人员可以以面向对象的角度来操作数据库。

Hibernate的优点

  • 对JDBC进行封装,简化了数据访问的代码(这一点相信使用原生JDBC操作数据库的朋友应该会有比较深的感触)

  • 支持多种关系型数据库

  • 性能好、配置灵活

Hibernate_HelloWorld

上面是关于Hibernate的一点简单介绍以及其优点,接下来让我们开始使用Hibernate的进行数据库的访问,感受Hibernate带来的方便性。

准备

首先需要下载Hibernate对应的jar包,Hibernate 5.2.9 Final 版本下载地址 ,如果是使用Maven来进行构建的朋友则更加简单了,只需要配置对应的依赖,Maven就会自动帮我们将对应的jar下载并且导入,笔者这里使用第二种方式。

建立项目

  1. 建一个Maven项目(笔者这里使用IDEA)勾选如下所示

    Hibernate框架学习之初识Hibernate_第1张图片
  2. 填写对应的GroupId、Artifact以及Version,如下所示

    Hibernate框架学习之初识Hibernate_第2张图片
  3. 选择好对应的Maven版本以及对应的设置、仓库所在位置,如下所示

    Hibernate框架学习之初识Hibernate_第3张图片
  4. 填写项目的名称、位置以及对应的Module信息(这里保持默认),如下所示

    Hibernate框架学习之初识Hibernate_第4张图片
  5. 建立项目完成之后,项目的结构图如下所示

    Hibernate框架学习之初识Hibernate_第5张图片
  6. 为了项目资源管理的方便,这里我们在src目录下建立一个resources目录,并且将其设置为资源文件,这样,Maven在编译时会自动将其导入类路径中,具体操作如下

    Hibernate框架学习之初识Hibernate_第6张图片
    Hibernate框架学习之初识Hibernate_第7张图片

    至此,我们的项目的基本骨架的搭建完成了。

导入Hibernate的核心包以及依赖包

由于是使用Maven来进行项目管理,所以导入对应的jar文件只需要在根目录的pom.xml文件中添加如下内容即可


  ...
    
    
    
      junit
      junit
      4.12
      test
    
    
    
      org.hibernate
      hibernate-core
      5.2.9.Final
    
    
    
      mysql
      mysql-connector-java
      5.1.41
    
  

  
    
    
      
        src/main/java
        
          **/*.xml
        
      
    
  
  ...

这样Maven就会自动下载Hibernate所需要的依赖及其核心包了。

编写配置文件

Hibernate的配置主要有两个文件,一个是用于配置元数据的,一个是用于配置数据源等信息的,下面我们开始编写配置文件

元数据

首先闲来编写元数据配置文件,所谓的元数据配置文件,可以理解为就是一个对应关系,也就是配置一个从JavaBean对象到SQL之间的对应关系,显然,为了Hibernate能够自动地完成从Java对象到SQL之间的映射,我们就必须告诉它哪个对象对应哪一张表,其中对象中的哪个属性对应表中的哪个列,哪个属性是对应的ID。

也就是说,在这个环节中,需要建立两个内容,一个是所要操作的类,另外一个其对应的关系,也就是我们的元数据

  1. 在包中建立以个Students对象,如下所示

    package cn.xuhuanfeng.learnignhibernate;
    
    /**
     * Created by xuhuanfeng on 2017-04-06.
     */
    public class Students{
    
        private int id;
        private String name;
        private int age;
     . . . 
     // 篇幅原因省略setter以及getter
    }
    

  2. 在Students对象的同级目录建立一个名为Student.hbm.xml的配置文件,配置内容如下所示

    
    
    
        
        
            
            
                
                
            
            
            
            
        
    
    
    

    至此,我们的元数据则建立完成。

    数据源配置文件

    接下来吗,我们来编写Hibernate的数据源配置文件,该配置文件是Hibernate的核心配置文件,主要用于加载上面的元数据以及配置相关的属性等等,在刚刚建立的resources目录中建立名为hibernate.cfg.xml的文件,注意,该文件不建议更改名字,内容如下所示:

    
    
        
            
            com.mysql.jdbc.Driver
            jdbc:mysql://localhost:3306/hibernate
            root
            huanfeng
    
            
            true
            
            true
    
            
            update
    
            
            
        
    
    
    

    由于这里需要操作对应的数据库,所以还需要建立一个对应的库,这里命名为hibernate,如果按照上面的配置,则不需要建立对应的表,只需要建立对应的库即可。

    至此,Hibernate所需要的配置全部完成,接下来我们就来开始编写对应的测试代码了。

编写测试文件

不知道初学Hibernate的你,看到这里会不会有点懵,笔者刚刚学习的时候也觉得有点懵,这样就可以编写测试代码了?我连具体内容都还没见到了,就只是写了配置文件以及一个JavaBean而已。这就是Hibernate的强大之处了,我们基本上可以不需要写任何的JDBC代码就能操作数据库了,而且更神奇的事情还在继续,让我们接下来继续前进,编写对应的测试类 StudentsTest如下所示

/**
 * Created by xuhuanfeng on 2017-04-06.
 * 测试Hibernate
 */
public class StudentsTest {

    @Test
    public void testCreate(){
        // 获取Hibernate的配置对象
        Configuration configuration = new Configuration().configure();
        // 建立SessionFactory
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        // 打开session
        Session session = sessionFactory.openSession();

        // 所要添加到数据库的学生对象
        Students students = new Students();
        students.setAge(22);
        students.setName("xuhuanfeng");

        // 开启事务
        Transaction ts = session.beginTransaction();
        // 将数据添加到数据库
        session.save(students);
        // 提交事务
        ts.commit();

        // 关闭对应的连接
        session.close();
        sessionFactory.close();
    }
}

保存之后直接运行即可,然后就可以查看对应的数据库数据了,相信你会惊奇的发现,对应的数据已经保存到数据库中了: )

控制台输出

细心的你可能会发现,在IDEA控制台中,输出了很多内容,接下来我们来粗略地看一下这些内容,在输出的内容中,主要内容如下

Hibernate: 
    
    create table students (
       id integer not null,
        name varchar(255),
        age integer,
        primary key (id)
    ) engine=MyISAM
Hibernate: 
    select
        max(id) 
    from
        students
Hibernate: 
    insert 
    into
        students
        (name, age, id) 
    values
        (?, ?, ?)

相信看到上面这些内容的你会觉得非常熟悉,这些SQL语句就是Hibernate为我们生成的,也就是说,使用了Hibernate框架,我们基本上再也不需要编写这些SQL操作的语句了,因为Hibernate已经为我们做好了大部分重复性的操作了。

总结

这小节主要介绍了Hibernate以及Hibernate的优点,并且一步步动手搭建一个基于Maven的Hibernate的项目,编写对应的配置文件以及测试类,看到了Hibernate的神奇之处,不过Hibernate的神奇之处可不止这些,Hibernate的学习之路还在继续。

你可能感兴趣的:(Hibernate框架学习之初识Hibernate)