• 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();
  • 相关阅读:
    第二章作业第2题--苏志华
    小学生四则运算应用软件(一)
    YOLO1至YOLOV3方法讲解
    C++ STL中的二分查找
    C++ 中的prioriy_queue 优先级队列 转
    C++ 中的容器(栈、堆、队列) 转
    从尾到头打印链表
    替换空格
    C++中vector<vector<int> >
    对称平方数
  • 原文地址:https://www.cnblogs.com/sybk/p/10004740.html
Copyright © 2020-2023  润新知