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、入门程序

有志者,事竟成,破釜沉舟,百二秦关终属楚;苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
原文地址:https://www.cnblogs.com/1989guojie/p/8203200.html