hibernate框架环境搭建具体步骤(介绍)

 更新时间:2017年06月07日 08:43:07   投稿:jingxian  
下面小编就为大家带来一篇hibernate框架环境搭建具体步骤(介绍)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

一. 概述:hibernate框架是作用于dao层的,实现对数据的持久化保存.通过面向对象的方式操作数据库。

二. hibernate框架的搭建

1.导包

  lib目录下的required文件夹下的所有jar包.

  mysql驱动包.

2.创建数据库于表.

3.创建实体类.

4.创建实体映射文件(以crm练习Customer类为例)

  实体类名.hbm.xml

  引入约束文件

<?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">
<!-- 根元素
    package(可选):填写包名.后面凡是需要完整类名的地方,都可以省略包名了.
 -->
<hibernate-mapping package="cn.itcast.domain" >
  <!-- class:映射类与表的关系
      name属性:实体属性名
      table属性:对应的表名
   -->
  <class name="Customer" table="cst_customer" >
  <!-- id:映射主键属性名(OID)与主键列对应关系
      name属性: OID名称
      column属性(可选):主键列名,默认值就是name属性值
      length属性(可选):指定属性长度.默认值使用数据库对应列长度
      type属性(可选):指定当前列(属性)的类型.默认值会根据数据库类型自动指定类型.
        type="long"        hibernate类型
        type="java.lang.Long"  java类型
        <column name="cust_id" sql-type="bigint" ></column> 数据库类型
   -->
    <id name="cust_id" >
      <!--主键生成策略 
        increment:hibernate每次保存数据是,会查询数据库中最大的值,在最大值的基础上加1作为新的主键值(测试时使用)
      identity:主键自增,有数据库负责生成主键值
      sequence:序列,Oracle时使用
      hilo:高低位算法,适用于既不支持自增也不支持序列的库(用不着)
      native:identity|sequence|hilo自动三选一
      uuid:主键类型为字符串是使用.
      assigned:有我们手动指定ID值
        -->
      <generator class="native"></generator>
    </id>
    <!-- property:映射非主键属性名与非主键列对应关系
      name属性: 属性名
      column属性(可选):非主键列名,默认值就是name属性值
      length属性(可选):指定属性长度.默认值使用数据库对应列长度
      type属性(可选):指定当前列(属性)的类型.默认值会根据数据库类型自动指定类型.
        type="long"        hibernate类型
        type="java.lang.Long"  java类型
        <column name="cust_id" sql-type="bigint" ></column> 数据库类型
   -->
    <property name="cust_name" column="cust_name" ></property>
    <property name="cust_source" ></property>
    <property name="cust_industry" column="cust_industry" ></property>
    <property name="cust_level" column="cust_level" ></property>
    <property name="cust_phone" column="cust_phone" ></property>
    <property name="cust_mobile" column="cust_mobile" ></property>
  </class>
</hibernate-mapping>

创建主配置文件

 hibernate.cfg.xml(在src下)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  <!-- 根元素 -->
  <hibernate-configuration>
    <!-- 以下都是为sessionFactory对象配置的 -->
    <session-factory>
    <!-- 必选配置
    
      //方言
      //所有数据库的sql语句都是基于SQL99标准的
      //每个数据库遵循SQL99标准的同时,也会扩充一部分SQL语句.这些标准之外的sql语句叫做方言  mysql方言: limit 0,5
      //注意:mysql方言类一共有3个.一定要选最短的
      #hibernate.dialect org.hibernate.dialect.MySQLDialect
      //数据库驱动
      #hibernate.connection.driver_class com.mysql.jdbc.Driver
      //数据库连接url
      #hibernate.connection.url jdbc:mysql:///test
      //连接用户名
      #hibernate.connection.username gavin
      //连接密码
      #hibernate.connection.password
     -->
      <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
      <property name="hibernate.connection.url">jdbc:mysql:///hibernate_54</property>
      <property name="hibernate.connection.username">root</property>
      <property name="hibernate.connection.password">1234</property>
      <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <!-- 可选配置 
      //是否在控制台显示hibernate生成的sql
      hibernate.show_sql true
      //是否对显示到控制台的sql语句格式化
      hibernate.format_sql true
      //自动建表
      # create(测试时使用)    : 自动建表,每次启动hibernate的时候都会自动建表.
      # create-drop(测试时使用)   : 自动建表,每次启动hibernate的时候都会自动建表.释放资源时会将所有表删除.
      # update(常用)  : 自动建表,有表就不会再创建,如果已经存在的表不完全匹配.会自动修改表结构.
      # validate    : 校验表结构.不会自动建表.每次hibernate启动时都会检查表结构是否正确.
                    //不正确=>抛出异常.
    -->
      <property name="hibernate.show_sql">true</property>
      <property name="hibernate.format_sql">true</property>
      
      <property name="hibernate.hbm2ddl.auto">update</property>
      
      <!-- 指定数据库隔离级别 
        ## specify a JDBC isolation level
        #hibernate.connection.isolation 4
        mysql 默认级别是4
        Oracle 默认级别是2
      -->
      <property name="hibernate.connection.isolation">4</property>
      <!-- 配置session与当前线程绑定 -->
      <property name="hibernate.current_session_context_class">thread</property>
      
      
    <!-- 映射引入配置 
        resource属性:填写引入映射文件的路径. 相对于src目录下.
    -->
      <mapping resource="cn/itcast/domain/Customer.hbm.xml" />
    </session-factory>
  </hibernate-configuration>

以上这篇hibernate框架环境搭建具体步骤(介绍)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot定制三种错误页面及错误数据方法示例

    SpringBoot定制三种错误页面及错误数据方法示例

    Spring Boot提供的默认异常处理机制通常并不一定适合我们实际的业务场景,因此,我们通常会根据自身的需要对Spring Boot全局异常进行统一定制,例如定制错误页面,定制错误数据等。本文主要介绍了SpringBoot三种自定义错误页面的实现,快来学习吧
    2021-12-12
  • Java GUI编程实现在线聊天室

    Java GUI编程实现在线聊天室

    这篇文章主要为大家详细介绍了Java GUI编程实现在线聊天室,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • SpringCloud超详细讲解微服务网关Gateway

    SpringCloud超详细讲解微服务网关Gateway

    这篇文章主要介绍了SpringCloud Gateway微服务网关,负载均衡,熔断和限流,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Spring与Hibernate整合事务管理的理解

    Spring与Hibernate整合事务管理的理解

    这篇文章主要介绍了Spring与Hibernate整合事务管理的理解的相关资料,需要的朋友可以参考下
    2016-09-09
  • SpringBoot整合Drools规则引擎动态生成业务规则的实现

    SpringBoot整合Drools规则引擎动态生成业务规则的实现

    本文主要介绍了SpringBoot整合Drools规则引擎动态生成业务规则的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java中@DateTimeFormat和@JsonFormat注解介绍

    Java中@DateTimeFormat和@JsonFormat注解介绍

    @DateTimeFormat和@JsonFormat都是处理时间格式化问题的,把其他类型转换成自己需要的时间类型,下面这篇文章主要给大家介绍了关于Java中@DateTimeFormat和@JsonFormat注解介绍的相关资料,需要的朋友可以参考下
    2022-11-11
  • Java中RabbitMQ消息队列的交换机详解

    Java中RabbitMQ消息队列的交换机详解

    这篇文章主要介绍了Java中的RabbitMQ交换机详解,消息队列是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成,是在消息的传输过程中保存消息的容器,需要的朋友可以参考下
    2023-07-07
  • 利用Java实现在PDF中添加工具提示

    利用Java实现在PDF中添加工具提示

    这篇文章主要介绍了如何通过Java在PDF中添加工具提示,文中的示例代码讲解详细,对我们学习或工作有一定的参考价值,感兴趣的可以学习一下
    2022-01-01
  • maven的pom.xml中profiles的作用详解

    maven的pom.xml中profiles的作用详解

    这篇文章主要介绍了maven的pom.xml中profiles的作用详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • GateWay路由规则与动态路由详细介绍

    GateWay路由规则与动态路由详细介绍

    这篇文章主要介绍了GateWay路由规则与GateWay动态路由,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09

最新评论