Hibernate5.0安装&基本配置&基本使用

Hibernate概述

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将`POJO(javabean)`与数据库表建立映射关系,是一个全自动的`orm`框架,`hibernate`可以自动生成`SQL`语句,自动执行,使得`Java`程序员可以随心所欲的使用对象编程思维来操纵数据库。 `Hibernate`可以应用在任何使用`JDBC`的场合,既可以在`Java`的客户端程序使用,也可以在`Servlet/JSP`的`Web`应用中使用,最具革命意义的是,`Hibernate`可以在应用`EJB`的`J2EE`架构中取代`CMP`,完成数据持久化的重任。

ORM框架概述

    ORM(对象关系映射)
        1. ORM映射:Object Relational Mapping
           * O:面向对象领域的Object(JavaBean对象)
           * R:关系数据库领域的Relational(表的结构)
           * M:映射Mapping(XML的配置文件)
        2. 简单一句话:Hibernate使程序员通过操作对象的方式来操作数据库表记录

Hibernate的运行环境

1.Hibernate.jar包下载链接:[Hibernate下载链接][1]
2.将下载的jar包解压
3.导入mysql驱动jar包
4.导入hibernate文件下面的lib包中的required的所有jar包
5.导入日志包
导入三个jar:
 - log4j-1.2.16.jar          日志接口具体实现
 - slf4j-api-1.7.2.jar       hibernate推荐使用的日志接口规范jar
 - slf4j-log4j12-1.7.2.jar   日志接口和日志实现的桥梁
jar包截图:
![截图][2]
6.创建javabean
7.在javabean的目录下创建一个xml文件,文件名为javabean名称.hbm.xml
8.找到hibernate的core核心jar包下的org.hibernate.xsd.hibernate-mapping-3.0.dtd`(或者xsd,默认不向下兼容)文件打开注解上面有hibernate配置文件的约束
    <?xml version="1.0" encoding="UTF-8"?>
       <!DOCTYPE hibernate-mapping PUBLIC
       "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
       "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
约束配置截图:
![约束截图][3]
9.javabean映射数据库xml配置

    <hibernate-mapping>
      <!--配置类和表结构的映射-->
    <!--
        name: 配置javabean的全路径
        table:数据库中的数据表名
    -->
    <class name="com.demo.domain.Customer" table="cst_customer">
        <!--配置id(数据库中的主键映射javabean中的属性)-->
        <!--
        后续配置中的属性
        name: javabean中的属性
        column: 表结构中的字段
        如果javabean中的属性和字段相同可以只写name
        -->
        <id name="cust_id" column="cust_id">
            <!--主键的生成策略-->
            <generator class="native"></generator>
        </id>

        <!--配置其他的属性-->
        <property name="cust_name" column="cust_name" />
        <property name="cust_user_id" column="cust_user_id" />
        <property name="cust_create_id" column="cust_create_id" />
        <property name="cust_source" column="cust_source" />
        <property name="cust_industry" column="cust_industry" />
        <property name="cust_level" column="cust_level" />
        <property name="cust_linkman" column="cust_linkman" />
        <property name="cust_phone" column="cust_phone" />
        <property name="cust_mobile" column="cust_mobile" />
    </class>
</hibernate-mapping>
    
样式:
![javabean映射数据库xml配置][9]

hibernate核心配置

1.配置hibernate核心配置文件(数据库驱动)
   在项目的src目录下new一个hibernate.cfg.xml文件
   添加约束
   找到hibernate和core核心jar包下的org.hibernate.xsd.hibernate-configuration-3.0.dtd`(或者xsd,默认不向下兼容)文件打开注解上面有hibernate配置文件的约束
    <!DOCTYPE html
        <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
2.如果没有网络xml文件中的不会出现代码提示需要配置本地
  没有网络配置本地:
     先复制(约束中的uri)http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd --> window --> preferences --> 搜索xml --> 选择xml catalog --> 点击add --> 现在URI --> 粘贴复制的地址 --> 选择location,选择本地的DTD的路径
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

基本配置:
    <hibernate-configuration>
    <!--必须配置一个session-factory标签,一个数据库对应一个session-factory标签-->
    <session-factory>

        <!--必须要配置的五个参数,4大参数 mysql驱动配置,数据库的方言(需要去hibernate文件下面的project/ect/hibernate.properties找),-->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc.mysql:///数据库名称</property>
        <property name="hibernate.connection.username">账户</property>
        <property name="hibernate.connection.password">密码</property>
        <!--数据库的方言(其他数据库的语句生成为指定数据的语句)-->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        
        <!--可选的配置-->
        
        <!--映射配置文件 需要引入映射的配置文件 指向映射的配置文件地址-->
        <mapping resource="comdemodomainCustomer.hbm.xhtml"/>
    </session-factory>
    </hibernate-configuration>
样式:
![配置][10]
hibernate.cfg.xml的五大参数可以去hibernate的解压的文件夹中的project/etc/hibernate.properties查看(自己是什么数据选择什么数据)
样式:
![参数配置][11]

[关于xml文件的可选配置可以点击查看][12]

基本使用

1.加载一个配置文件
     Configuration config = new Configuration() {};
     默认加载src目录下的hibernate.cfg.xml的配置文件,如果使用的是properties配置文件就不需要调用configure()函数,需要调用一个addResource("配置文件路径"),手动加载;
     config.configure();

2.创建SessionFactory对象
     SessionFactory sessionfactory = config.buildSessionFactory();

3.创建一个Session对象
     Session session = sessionfactory.openSession();

4.开启事务
     Transaction tr = session.beginTransaction();

5.编写保存代码
     Customer c = new Customer();
//   不需要设置javabean对应数据表的主键,主键是自动递增的 hibernate已经帮我们去管理主键了(在配置中设置,不能写)
     c.setCust_name("测试");

6.操作数据,操作对象就相当于操作数据库的表结构`
需要对数据表进行什么操作调用什么方法
 - session.save(c); 将javabean中的数据放入数据表中insert
 - session.delete(c); 删除
 - session.get(c); 查询
 - session.update(c); 修改
 - session.saveOrUpdate(c); 保存或者修改(如果没有数据,保存数据。如果有,修改数据)
 - session.createQuery(); HQL语句的查询的方式

7.提交事务
     tr.commit();

8.释放资源
     session.close();
     sessionfactory.close();

hibernate回滚事务函数:
session.beginTransaction().rollback();
原文地址:https://www.cnblogs.com/sybk/p/10004740.html