Hibernate 概述及入门

时间:2021-06-23 07:40:08

    Hibernate 是一个ORMapping的实现, 所以主要功能就是以对象的形式操作数据库

开发步骤:

1. 持久化类的设计

2. 持久化类和关系数据库的映射

3. 应用的开发

    POJO类: 只包含settergetter方法的类。 (Plain Old Java Objects

POJO很像JavaBean, 属性通过getter和setter方法访问, 对外隐藏了内部实现的细节。

HBM映射: 描述表和类之间的关系

Example:

sql:

DROP TABLE person ;

CREATE TABLE person

(

    id  varchar(32) not null primary key,

    name varchar(30) not null,

    password varchar(30) not null,

    sex varchar(2),

    email varchar(30)

);

commit ;

 

Person.hbm.xml:

 

<class name="Person" table="PERSON">
        <id name="id" column="ID" type="string">
            <generator class="uuid.hex"/>
        </id>
 
        <property name="name" column="NAME" type="string"  not-null="true" />
        <property name="password" column="PASSWORD" type="string"  not-null="true" />
        <property name="sex" column="SEX" type="string" />
        <property name="email" column="EMAIL" type="string" />
    </class>

 

hibernate.cfg.xml: 对hibernate环境配置的,包括使用的数据库或数据源

方言: 所要使用的数据库类型

 

POJO类的名称最好与表名一致:

<session-factory>
    <property name="myeclipse.connection.profile">Oracle 9</property>
    <property name="connection.url">jdbc:oracle:thin:@localhost:1521:MLDN</property>
    <property name="connection.username">scott</property>
    <property name="connection.password">tiger</property>
    <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
    <property name="show_sql">true</property>
    <mapping resource="org/lxh/hibernate/demo01/Person.hbm.xml" />
</session-factory>

 

Session是一个接口, 必须通过其他类实例化, 格式是固定的

//找到Hibernate配置

Configuration config = new Configuration().configure().

//从配置中取出SessionFactory

SessionFactory factory = config.buildSessionFactory();

//从SessionFactory中取出一个Session

this.session = factory.openSession() ;

事务处理, 在插入完成之后, 必须将事务提交: Transaction

 

Configuration类负责管理Hibernate的配置信息。包括一下内容:

---Hibernate运行的底层信息: 数据库的URL、用户名、密码、JDBC驱动类、数据库Dialect, 数据库连接池等

---Hibernate 映射文件 (*.hbm.xml)

 

SessionFactory: 应用程序可以从这里获得Session实例。它可以缓存生成的SQL语句和Hibernate在运行时使用的映射元数据

 

---Session 不是线程安全的, 她代表与数据库之间的一次操作, 他的概念介于Connection和Transaction之间

---Session 也称为持久化管理器, 因为她是与持久化有关的操作接口

---Session 通过SessionFactory打开, 在所有的工作完成后, 需要关闭。

---她与Web层的HttpSession没进行操作时有任何关系

 

Transaction: 她将应用代码从底层的事务实现中抽象出来, 允许应用通过一组一致的API控制事务边界。 使用Hibernate进行操作时(增删改)必须显示的调用Transaction (默认autoCommit=false)。

Hibernate 概述及入门