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

所属分类: 软件编程 / java 阅读数: 21
收藏 0 赞 0 分享

一. 概述: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框架环境搭建具体步骤(介绍)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Java数据类型的规则

这篇文章主要介绍了Java数据类型的规则的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring整合TimerTask实现定时任务调度

这篇文章主要介绍了Spring整合TimerTask实现定时任务调度的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解SpringMVC使用MultipartFile实现文件的上传

本篇文章主要介绍了SpringMVC使用MultipartFile实现文件的上传,本地的文件上传到资源服务器上,比较好的办法就是通过ftp上传。这里是结合SpringMVC+ftp的形式上传的,有兴趣的可以了解一下。
收藏 0 赞 0 分享

SpringMVC上传文件的三种实现方式

本篇文章主要介绍了SpringMVC上传文件的三种实现方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例

本篇文章主要介绍了微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
收藏 0 赞 0 分享

浅析Java中的继承与组合

本文将介绍组合和继承的概念及区别,并从多方面分析在写代码时如何进行选择。文中通过示例代码介绍的很详细,有需要的朋友可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享

利用反射获取Java类中的静态变量名及变量值的简单实例

下面小编就为大家带来一篇利用反射获取Java类中的静态变量名及变量值的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java启动线程的3种方式对比分析

这篇文章主要为大家对比分析了java启动线程的3种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

SpringMVC上传和解析Excel方法

这篇文章主要介绍了SpringMVC上传和解析Excel方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

JAVA中String类与StringBuffer类的区别

这篇文章主要为大家详细介绍了JAVA中String类与StringBuffer类的区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多