hibernate简介及环境配置

这篇文章讲述的是hibernate的环境配置,如有错误或者不当之处还望各位大神批评指正。

什么是hibernate?

什么是ORM

ORM 表示 Object-Relational Mapping (ORM),是一个方便在关系数据库和类似于 Java, C# 等面向对象的编程语言中转换数据的技术。简单来说,ORM就是面向对象的编程语言中的对象到数据库中对应的实体模型之间的映射关系。

ORM与jdbc相比有什么好处

  1. 使用业务代码访问对象而不是数据库中的表
  2. 从面向对象逻辑中隐藏 SQL 查询的细节
  3. 基于 JDBC 的 ‘under the hood’
  4. 没有必要去处理数据库实现
  5. 实体是基于业务的概念而不是数据库的结构
  6. 事务管理和键的自动生成
  7. 应用程序的快速开发

一个简单的ORM例子

假设有对象student

public class Student {
    public int id ;
    public String name ;
    public float score ;

    /*省略get和set方法*/

}

对应的数据库中有这样一个表

create table student(
    id number(6) primary key not null ,
    name varchar(200) not null,
    score number(5,2) 
)

这样一个从java对象模型到表之间的映射就叫做ORM

什么是hibernate

  • Hibernate 是高效的构建具有关系对象持久性和查询服务的 Java 应用程序。
  • Hibernate 将 Java 类映射到数据库表中,从 Java 数据类型中映射到 SQL 数据类型中,并把开发人员从 95% 的公共数据持续性编程工作中解放出来。
  • Hibernate 是传统 Java 对象和数据库服务器之间的桥梁,用来处理基于 O/R 映射机制和模式的那些对象。

hibernate的好处
1. Hibernate 使用 XML 文件来处理映射 Java 类别到数据库表格中,并且不用编写任何代码。
2. 为在数据库中直接储存和检索 Java 对象提供简单的 APIs。
3. 如果在数据库中或任何其它表格中出现变化,那么仅需要改变 XML 文件属性。
4. 抽象不熟悉的 SQL 类型,并为我们提供工作中所熟悉的 Java 对象。
5. Hibernate 不需要应用程序服务器来操作。
6. 操控你数据库中对象复杂的关联。
7. 最小化与访问数据库的智能提取策略。
8. 提供简单的数据询问。

简单来说,hibernate就是处理ORM映像的开源框架。

如何配置hibernate(ORACLE为例)

  1. 下载hibernate
    网址http://www.hibernate.org/downloads ,我下载的是4.2.2版本,如下图:
    这里写图片描述

  2. 解压压缩包打开libs目录下的required的所有包拷贝到项目中libs文件夹

这里写图片描述
3. 配置hibernate.cfg.xml

在src文件夹中新建hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
   <session-factory>

   <!-- 这个属性使 Hibernate 应用为被选择的数据库生成适当的 SQL -->
   <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>

   <!-- JDBC 驱动程序类 -->
   <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

   <!-- Assume test is the database name -->
   <!-- 数据库实例的 JDBC URL -->
   <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>

   <!-- 数据库用户名 --> 
   <property name="hibernate.connection.username">scott</property>

   <!-- 数据库密码 --> 
   <property name="hibernate.connection.password">tiger</property>

   <!-- 是否显示sql -->
   <property name="hibernate.show_sql">true</property>

   <!-- 是否将sql格式化 -->
   <property name="hibernate.format_sql">true</property>

   <!-- 是否自动在数据库中生成表 -->
   <property name="hibernate.hbm2ddl.auto">update</property>

   <!-- List of XML mapping files -->
   <!-- 下面是映射的类 -->
   <mapping resource="Student.hbm.xml"/>

</session-factory>
</hibernate-configuration> 
  1. 配置实体映射Student.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<!-- 
配置说明:
    1.<class> 标签是用来定义从一个 Java 类到数据库表的特定映射。
      Java 的类名使用 name 属性来表示,数据库表明用 table 属性来表示。

    2.<meta> 标签是一个可选元素,可以被用来修饰类。

    3.<id> 标签将类中独一无二的 ID 属性与数据库表中的主键关联起来。
      id 元素中的 name 属性引用类的性质,column 属性引用数据库表的列。
      type 属性保存 Hibernate 映射的类型,这个类型会将从 Java 转换成 SQL 数据类型。

    4.在 id 元素中的 <generator> 标签用来自动生成主键值。
         设置 generator 标签中的 class 属性可以设置 native 使 Hibernate 可以使用 identity, sequence 或 hilo 算法根据底层数据库的情况来创建主键。

    5.<property> 标签用来将 Java 类的属性与数据库表的列匹配。标签中 name 属性引用的是类的性质,column 属性引用的是数据库表的列。
      type 属性保存 Hibernate 映射的类型,这个类型会将从 Java 转换成 SQL 数据类型 
 -->
<hibernate-mapping>
   <class name="Student" table="STUDENT">

      <id name="id" type="int" column="id">
         <generator class="sequence"/>
      </id>
      <property name="name" column="name" type="string"/>
      <property name="score" column="score" type="float"/>

   </class>
</hibernate-mapping>

这样就配置好了一个hibernate的ORM映射

映射类型说明
来自于w3cschool
这里写图片描述

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/u013634252/article/details/80733658