Hibernate(一)

Hibernate是一个开源的ORM框架,对JDBC进行了轻量级的封装,可使用面向对象的思惟操做数据库java

轻量级的JavaEE应用的持久层解决方案,关系型数据库ORM框架mysql

操做Java对象,经过映射的关联操做数据库的表结构(对象属性,数据库字段 )sql

 

ORM(Object Relational Mapping)对象关系映射数据库

O:JavaBeansession

R:表结构app

M:XML配置文件框架

经过操做对象的方式来操做数据库的表结构dom

 

Hibernate的优势:性能

一、对JDBC访问数据库的代码进行了封装,简化了DAO层的重复性代码ui

二、基于JDBC的主流映射框架,优秀的ORM实现,简化了DAO层的编码

三、性能好,轻量级框架,映射灵活,支持不少关系型数据库,从一对多到多对多的各类复杂关系

 

入门

一、导包

(1)MySQL驱动包

mysql-connector-java

(2)Hibernate包 lib/required下

antlr

dom4j

geronime-jta

hibernate-commons-annotations

hibernate-core

hibernate-jpa

jandex

javaassist

jboss-logging

(3)日志包

log4j(日志实现)

slf4j(接口)

slf4j-log4j(桥梁 映射--XML配置文件 )

 

二、建表和JavaBean

用包装类,属性和字段一致

须要提早建表,hibernate能够映射生成表结构,可是不能生成表

 

三、映射配置文件 hbm.xml

JavaBean有多少个就有多少映射文件hbm.xml,JavaBean和映射文件一一对应

(1)在JavaBean所在的包下建立映射的配置文件    类名.hbm.xml

xml配置文件引入约束,引入3.0,4.0不向下兼容

不能上网须要配置,关闭xml再次打开会有提示

(2)映射配置文件

<hibernate-mapping>
    <class name="com.guojie.domain.Customer" table="cst_customer">
        <!-- 配置id,其中name是JavaBean的属性,column是表的字段 -->
        <id name="cst_id" column="cst_id">
            <!-- 主键生成策略 -->
            <generator class="native" />
        </id>

        <!-- 配置其余属性 -->
        <property name="cust_name" column="cust_name" />
    </class>
</hibernate-mapping>

 

四、核心配置文件cfg.xml

<hibernate-configuration>
    <!-- 一个数据库对应一个sessionFactory -->
    <session-factory>
        <!-- 必须配置的参数5个:4大参数,方言 -->
        <property name="hibernate.connection.driver.class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql:///hibernate-demo</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.username">root</property>
        <!-- 数据库方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 映入配置映射文件 映射配置文件右键--路径去掉com包以前的-->
        <mapping resource="com/guojie/domain/Customer.hbm.xml" />
    </sessionFactory>
</hibernamte-configuration>

 

五、入门程序

相关文章
相关标签/搜索