Hibernate(一)

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

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

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

 

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

O:JavaBean

R:表结构

M:XML配置文件

通过操作对象的方式来操作数据库的表结构

 

Hibernate的优点:

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

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

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

 

入门

1、导包

(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配置文件 )

 

2、建表和JavaBean

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

需要提前建表,hibernate可以映射生成表结构,但是不能生成表

 

3、映射配置文件 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>

 

4、核心配置文件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>

 

5、入门程序

 

posted @ 2018-01-05 11:09  十年英雄梦  阅读(98)  评论(0编辑  收藏  举报