核心配置

  核心配置有两种方式进行配置
    1:属性文件的配置:hibernate.properties
    格式:key=value
      hibernate.connection.driver_class=com.mysql.jdbc.Driver
    注意:没有办法在核心配置文件中加载映射文件.(必须手动编码的方式进行加载.)

    2:XML格式文件配置:hibernate.cfg.xml
      格式:<property name="hibernate.connection.username">root</property>

  核心配置中
    1.必须的配置
      连接数据库4个基本参数:
        hibernate.connection.driver_class 连接数据库驱动程序
        hibernate.connection.url 连接数据库URL
        hibernate.connection.username 数据库用户名
        hibernate.connection.password 数据库密码

      Hibernate的方言:
        hibernate.dialect 操作数据库方言

    2.可选的配置
      hibernate.show_sql true 在控制台上输出SQL语句
      hibernate.format_sql true 格式化控制台输出的SQL语句
      hibernate.connection.autocommit true 事务是否自动提交
      hibernate.hbm2ddl.auto create/create-drop/update/validate
        create :每次执行的时候,创建一个新的表.(如果以前有该表,将该表删除重新创建.) 一般测试的时候的使用.
        create-drop :每次执行的时候,创建一个新的表,程序执行结束后将这个表,删除掉了. 一般测试的时候使用.
        update :如果数据库中没有表,创建一个新的表,如果有了,直接使用这个表.可以更新表的结构.
        validate :会使用原有的表.完成校验.校验映射文件与表中配置的字段是否一致.不一致会报错.

    3.映射的配置
      在XML格式配置文件中加载映射文件:
        <mapping resource="cn/itcast/hibernate3/demo1/Customer.hbm.xml" />

映射文件的配置
  ORM:对象关系映射(Java对象与数据库表的映射)
  配置类与表的映射
    name:类的全路径
    table:表的名称(可以省略的.若省略使用类的名称作为表名.)
    <class name="cn.yzu.hibernate3.demo1.Order" table=”orders”>

  配置普通属性与字段映射
    <property name="name" column="name" type="string" length=”20”/>
      type:三种写法
        Java类型 :java.lang.String
        Hibernate类型 :string
        SQL类型 :不能直接使用type属性,需要子标签<column>
          <column name="name" sql-type="varchar(20)"/>

  配置唯一标识与主键映射
    一个表中只有一个主键的形式:<id name=”id” column=”id”>

      主键:自然主键和代理主键

        自然主键:
          创建一个人员表.人员表中某条记录唯一确定.如人都有身份证号.我们可以使用身份证号作为主键.(身份证号本身就是人员的一个属性.作为主键.)

        代理主键:
          创建一个人员表.人员表中某条记录唯一确定.但是没有使用身份证号作为主键,新建字段(用新建的字段作为主键.只是一个标识作用.)

        尽量要Hibernate自己去维护主键,尽量使用代理主键,因为如果我们使用自然主键如身份证号,万一有一天自然主键要参与业务逻辑,比如身份证号要发生修改,那么会非常麻烦。
      主键的生成策略:
        increment :自动增长.适合 short int long...不是使用数据库的自动增长机制.使用Hibernate框架提供的自动增长方式.
            插入数据时,先发送一条语句:select max(id) from 表; 在最大值的基础上+1再插入数据.(存在多线程的问题)在集群下不能使用

        identity :自动增长.适合 short int long...采用数据库的自动增长机制.不适合于Oracle数据库
        sequence :序列.适用于 short int long ... 应用在Oracle上 
        uuid :适用于字符串类型的主键.采用随机的字符串作为主键.
        native :本地策略.底层数据库不同.自动选择适用identity 还是 sequence
        assigned :Hibernate框架不维护主键,主键由程序自动生成.
        foreign :主键的外来的.(应用在多表一对一的关系.)

    一个表对应多个主键形式:(复合主键)---了解即可,用的很少:<composite-id></composite-id>,例如:
          

                                   

  命名SQL(配置后,可在Java代码中通过直接获取配置的名字而获得数据库语句)

<query name="findAll">
  from Customer
</query> <sql-query name="sqlFindAll">
  select * from customer
</sql-query>

hibernate常用配置的更多相关文章

  1. hibernate学习笔记(3)hibernate常用配置以及session对象

    更改hibernate.cfg.xml的内容,常用配置有: <!--  把hibernate运行时的SQL语句显示到控制台  --> <property name="sho ...

  2. hibernate课程 初探单表映射2-2 hibernate常用配置

    1 hibernate.cfg.xml常用配置: show_sql 控制台打印sql format_sql 控制台将sql排版 hbm2ddl.auto: create 删除表结构,重新建表并插值 u ...

  3. SSH(struts+spring+hibernate)常用配置整理

    SSH(struts+spring+hibernate)常用配置整理 web.xml配置 <?xml version="1.0" encoding="UTF-8&q ...

  4. Hibernate 基础配置及常用功能(一)

    本来是想等全部框架测试完以后再统一发布的,但是随着测试的一点点增加感觉把需要叙述的东西放在一起终将会是一场灾难.所以还是打算分成几章来描述,其中还包括一些有待解决的问题.短期很难腾出时间来仔细阅读Hi ...

  5. Hibernate常用配置文件详解

    本文转载自:http://blog.csdn.net/csh624366188/article/details/7578939 初学hibernate的童鞋,刚开应该都有这种感觉,hibernate的 ...

  6. Hibernate常用接口

    Hibernate的接口类型 在了解了Hibernate的基本配置,映射文件后,道路已经铺平了.我们继续往前走.接下来,我们应该做的是了解Hibernate常用的接口,对Hibernate的工作方式进 ...

  7. Hibernate框架--配置,映射,主键

    SSH框架: Struts框架, 基于mvc模式的应用层框架技术! Hibernate,    基于持久层的框架(数据访问层使用)! Spring,   创建对象处理对象的依赖关系以及框架整合! Da ...

  8. struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...

  9. Spring连接池的常用配置

    1.连接池概述 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个 应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正 ...

随机推荐

  1. MFC 对话框添加菜单

    1.在Resource View 里右击菜单里选择Add Resource,选择menu,添加一个IDR_MENU1的菜单.在编辑器编辑菜单,添加菜单项,命名各个菜单项的ID. 2.在所要添加菜单的对 ...

  2. [ 转] [Android]多式样ProgressBar

    多式样ProgressBar 普通圆形ProgressBar 该类型进度条也就是一个表示运转的过程,例如发送短信,连接网络等等,表示一个过程正在执行中. 一般只要在XML布局中定义就可以了. < ...

  3. Python 生产环境MySQL数据库增量备份脚本

    MySQL数据库常用的办法是通过MySQLdump导出sql进行备份,但是不适合数据量很大的数据库,速度,锁表是两个严重的问题.前面写了一遍文章介绍xtrabackup的热备工具,见 http://w ...

  4. IOS-KVO&KVC

    KVC(key value coding) 我们一般是通过调用set方法或属性的点语法来直接更改对象的状态,即对象的属性值,比如[stu setAge:10];  stu.age = 9; lKVC, ...

  5. IOS- 快速排序,冒泡排序,直接插入排序和折半插入排序,希尔排序,堆排序,直接选择排序

    /*******************************快速排序 start**********************************///随即取 当前取第一个,首先找到第一个的位置 ...

  6. IIS配置默认文档

    我们在配置IIS的默认文档时是在这里配置的,如下图: 但是,有可能我们的根目录下没有这个文件,而且我们网站运行的时候也不想访问根目录下的这个文件,而是要访问其他文件夹下的某一个文件,比如网站运行的时候 ...

  7. php单例模式的研究

    几个关键点: 1,对象P应该可以被系统中的任何对象使用 2,对象P不应该被存储在会被覆写的全局变量总 3,系统中不应该超过一个P对象,也就是说,Y对象可以设置P对象的一个属性,而Z对象不需要通过其他对 ...

  8. ios waxpatch lua语法

    Wax Lua 使用方法 说一下 Wax 的特点,它支持你在脚本里使用任何 OC 的类,同样也支持你创建一个类. 使用一个类时你会这样使用: 1 2 NSString -- Returns the N ...

  9. Mysql手册—基本规范与数据类型

    第十章      本章主要介绍了一些语法规范,如 对于表,函数,字段,在Linux上大小写敏感,Windows和MacOS上却不敏感: Mysql是如何识别函数的及用户在定义自定义函数时命名要求:通过 ...

  10. 困难的串(dfs)

    困难的串 题意: 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”.例如,                 BB.ABCDABCD都是容易的串,而D.DC.ABDAD ...