• 在Myeclipse中Hibernate框架的配置过程(图文)


    作为JAVA开发常用的IDE,Myeclipse让开发变得更简捷

    作为实现了ORM(对象关系映射)并有诸多优点的框架,Hibernate是的开发更对象化,封装jdbc+简化DAO层+ORM(实现数据持久化

    hibernate优点:
    1、封装了jdbc,简化了很多重复性代码。
    2、简化了DAO层编码工作,使开发更对象化了。
    3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。
    4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。
     
    总之,数据持久化是解决程序与数据库之间交互访问的问题,使程序不直接访问数据库,而是直接访问Session会话,然后由Session会话与数据库“打交道”。只要确保,程序每次访问Session中的数据时,与数据库中的数据保持一致,就不会出现错误。
     
    Myeclipse中Hibernate手动配置
    配置前准备工作:1.在Hibernate官方主页下载需要的Jar包,官网地址:www.hibernate.org
            下载hibernate4.1.4.Final-source+jar(此处以此为例)
            2.创建好需要使用Hibernate框架的WebProject,此处WebProject名字为MyBlog.
    Configure Steps:
      一.创建hibernate.cfg.xml文件并配置之
       1.将hibernate4.1.4.Final-source+jarlib equired目录(directory)下的jar包复制添加到/MyBlog/WebRoot/WEB-INF/lib下(注意此处创建WebProject时候即自动生成了此lib文件夹,不需要自己创建)
       2.在/MyBlog/src目录下new一个名称为hibernate.cfg.xml文件。(此文件为hibernate的核心配置文件,作用:配置数据库连接、运行时所需的各种属性,默认文件名为“hibernate.cfg.xml”)
         3. 在Web App Libaries下找到hibernate-core-4.1.4.Final.jar文件,打开后,找到/org/hibernate/hibernate-configuration-3.0.dtd(此文件规定了xml应该出现的节点,dtd:document type definition),打开此文件,然后将声明部分<!DOCTYPE······>复制后添加到hibernate.cfg.xml文件中——目的:按照hibernate规定的方式书写xml,并且让hibernate能够识别并解析之
    如图:
       
       4.在hibernate.cfg.xml文件中添加根节点:<hibernate-configuration></hibernate-configuration>,此标签内conment如tagName,为hibernate配置信息。
       5.在根节点下添加子节点:<session-factory></session-factory>,此节点用来生成session
       6.在session-factory内创建property节点,此节点用来定义hibernate连接数据库和数据库操作的基本配置信息
          注意:相比JDBC直接连接数据库,此处多了一个dialect属性,即方言。    
    <hibernate-configuration>
        <session-factory>
            <property name="connection.username">root</property>
            <property name="connection.password">root</property>
            <property name="connection.url"></property>
            <property name="connection.driver_class"></property>
            <property name="dialect">org.hibernate.dialect.MySQL5Dialect.class</property>
        </session-factory>
    </hibernate-configuration>

    ps:dtd文件,一种文件格式,所有的框架中都有此文件,用来定制文档类型,如图:

    选中部分为声明部分,下方内容部分规定了XML文件中应该出现的节点的具体信息,包括名称、数量等

    二.创建持久化类(即实体类entity),并使该类实现java.io.Serializable 接口,添加默认构造方法

      >创建位置:在src下创建po包,然后在package po下创建class  

      >po包下所有类需要实现java.io.Serializable接口

      >po包下的所有类必须有默认构造方法(即jvm自带的无参构造方法),如果添加了含参构造函数,则必须添加无参构造函数。

    三.创建并配置映射文件*.hbm.xml——创建ClassNamel.hbm.xml文件并配置之(此项意在建立持久化类和数据库表之间的一一映射关系)

      1.首先,在po包下创建ClassName(可缩略).hbm.xml文件

      2.然后, 在Web App Libaries下找到hibernate-core-4.1.4.Final.jar文件,打开后,找到/org/hibernate/hibernate-mapping-3.0.dtd(org.hibernate文件夹下的hibernate-mapping-3.0.dtd文件)

      打开此文件,然后将声明部分<!DOCTYPE······>复制后添加到*.hbm.xml文件中——目的:按照hibernate规定的方式书写*.hbm.xml,并且让hibernate能够识别并解析之

      3.创建根节点<hibernate-mapping><hibernate-mapping>

      4.在根节点内创建子节点<class>,并制定class的name和table属性

        name属性:指明java中该class的路径和名称,如name="articles/po/Articles"

        table属性:指明在数据库中该持久化类对应的表名,如:table="articles"

      5.创建<class>节点的子节点<id></id>和<property></property>

        两者异同:两者中都应声明(declares)name="持久化类中属性名"; column="对应表中列名"; type="在java中数据类型"

              不同的是,在id节点内,需要加入子节点<generator class="increment"></generator>

              如果是oracle数据库,则为:<generator class="sequence"></generator>

    如下:

    <?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">
    <hibernate-mapping>
        <class name="articles/po/Articles" table="articles">
            <id name="id" column="A_id" type="java.lang.Integer">
            <!-- 添加主键生成策略 -->
            <generator class="increment"></generator>
            </id>
            <property name="articleTitle" column="articleTitle" type="java.lang.String"></property>
            <property name="articleContent" column="articleContent" type="java.lang.String"></property>
            <property name="articleLabel" column="articleLabel" type="java.util.List<String>"></property>
            
        </class>
    </hibernate-mapping>

     三.在配置文件中配置映射文件

      在hibernate.cfg.xml中,在<session-factory></session-factory>节点内添加自结束子节点——<mapping resource="映射文件的地址" />

    PS:hibernate-mapping-3.0.dtd文件中内容的理解,如图:

      

    此中,<!ELEMENT 元素名 元素内容>中的内容代表hibernate-mapping 下的子节点,ATTLIST:属性列表 attribute list

       dtd文件中属性声明语法:<!ATTLIST 元素名 属性名 属性类型 属性限定条件>  一个属性声明可以声明一个元素的多个属性

    Hibernate使用Eclipse工具自动生成配置:
  • 相关阅读:
    Python-pymysql
    MySQL学习(3)
    MySQL学习(1)
    MySQL与PostgreSQL哪个更好?
    svn与git区别
    journalctl常用命令
    Spring Cloud 生产环境性能优化
    springcloud优雅停止上下线与熔断
    istio基础详解
    微服务的全链路监控
  • 原文地址:https://www.cnblogs.com/dgyw/p/5734226.html
Copyright © 2020-2023  润新知