您的位置:首页 > 数据库

Hibernate 概述及入门

2009-10-16 23:36 183 查看
    Hibernate
是一个ORMapping
的实现, 所以主要功能就是以对象的形式操作数据库


开发步骤:

1. 持久化类的设计

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

3. 应用的开发

    POJO类
: 只包含setter
及getter
方法的类。 (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)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息