映射文件,即xxx.hbm.xml的配置文件

<class>标签:用来将类与数据库表建立映射关系

  属性:

    name:类中的全路径

    table:表名(如果类与表名一致,那么table属性可以省略)

    catalog:数据库的名称(一般不需要写)

  子标签:  

    <id>标签:用来将类中的属性和表中的主键建立映射,id就是用来配置主键的.

      属性:

        name:类中的属性名

        column:表中的字段名(如果类中的属性名和表中的字段名相同,可以省略)

        length:数据的长度。(如果数据库建立好了,可以不写;如果没创建好,生成表结构是,length最好指定)

      主键的类型和生成策略在文章后面介绍

    <property>标签:将类中的属性与表中的字段建立映射

      属性:

        name:类中的属性名

        column:表中的字段名(如果类中的属性名和表中的字段名相同,可以省略)

        length:数据的长度

        type:数据类型(一般不需要写)

          Hibernate的数据类型:type="string"

          Java的数据类型:type="Java.lang.String"

          数据库字段的数据类型:<column name="xxx" sql-type="varchar"/>

<?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="com.hibernateday1.domain.Customer" table="cst_customer" catalog="hibernate_day01"> <!-- 配置id
name:JavaBean的属性
column:表结构的字段
-->
<id name="cust_id" column="cust_id">
<!-- 主键的生成策略 -->
<generator class="native"/>
</id> <!-- 配置其他属性 -->
<property name="cust_name">
<column name="cust_name" sql-type="varchar"/>
</property>
<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" type="string"/>
<property name="cust_industry" column="cust_industry" type="java.lang.String"/>
<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>

主键的类型

  • 自然主键:对象本身的一个属性作为主键。
  • 代理主键:为对象单独创建一个字段,最为主键。(开发中推荐的使用方式)

主键的生成策略

  • 1.increment :适用于short,int,long作为主键

    不是使用的数据库自动增长机制,Hibernate提供的一种增长机制

    当前数据库最大值+1作为新纪录的主键

    问题:不能再并发访问个集群情况下使用

  • 2.indentity:适用于short,int,long作为主键,但是必须使用在有自动增长的数据库中,采用的是数据库底层的增长机制

    底层使用的是数据库的增长机制(auto_increment),想Oracle数据库没有自动增长机制

  • 3.sequence:适用于short,int,long作为主键,底层使用的是序列的增长方式

    Oracle实现自动增长,需要使用序列

  • 4.uuid:☆☆☆☆☆适用于char,varchar类型作为主键

    使用随机的字符串作为主键

  • 5.native:☆☆☆☆☆本地策略,根据底层数据库的不同,自动选择适合该数据库的生成策略(short,int,long)

    MySQL:indentity

    Oracle:sequence

  • 6.assigned:主键生成不要Hibernate管理,必须手动设置主键

02.Hibernate配置文件之映射配置文件的更多相关文章

  1. Hibernate主配置文件、映射配置文件以及复合主键查询

    Hibernate.cfg.xml主配置文件 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final\pr ...

  2. Hibernate学习笔记--映射配置文件详解

    参考资料: http://blog.163.com/hzd_love/blog/static/13199988120108265317988/ http://www.cnblogs.com/often ...

  3. Hibernate第三篇【主配置文件、映射文件、复合主键映射】

    前言 目前已经学了如何搭建Hibernate的开发环境,以及Hibernate对应的API了-在快速入门还没讲解的就是配置文件是怎么配置的.因此,本博文主要讲解主配置文件以及映射配置文件.. 主配置文 ...

  4. Mybatis基础:Mybatis映射配置文件,Mybatis核心配置文件,Mybatis传统方式开发

    一.Mybatis快速入门 1.1 框架介绍 框架是一款半成品软件,我们可以基于这个半成品软件继续开发,来完成我们个性化的需求! 框架:大工具,我们利用工具,可以快速开发项目 (mybatis也是一个 ...

  5. Hibernate配置文件和映射元素解释

    象关系的映射是用一个XML文档来说明的.映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等.下面从一个映射的例子开始讲解映射元素. AD:干货来了,不要等!WOT20 ...

  6. Hibernate框架 主配置文件 Hibernate.cfg.xml 映射配置 说明

    1 主配置文件 Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final ...

  7. Hibernate(三)结构-配置文件-实体映射及配置文件

    一.体系结构 SessionFactory:属于单一数据库的编译过的映射文件的一个线程安全的,不可变的缓存快照.Session的工厂.有可能持有一个可选的数据缓存可以进程级别或者群级别保存可以在事务中 ...

  8. Eclipse使用xdoclet1.2.3 生成hibernate配置文件和映射文件

    用ant和xdoclet生成hibernate配置文件可以为我们省去很多配置的操作,废话不多说,直接给栗子: 测试环境: eclipse:Eclipse Java EE IDE for Web Dev ...

  9. Hibernate配置文件中映射元素详解

    对象标识符号 在关系数据库表中,主键(Primary Key)用来识别记录,并保证每条记录的唯一性.在Java语言中,通过比较两个变量所引用对象的内存地址是否相同,或者比较两个变量引用的对象值是否相同 ...

随机推荐

  1. ES5-call,apply,bind的用法

    区别bind()与call()和apply()? 1. Function.prototype.bind(obj) : * 作用: 将函数内的this绑定为obj, 并将函数返回2. 面试题: 区别bi ...

  2. helm安装kubernetes的插件istio

    1.安装istio 要使用Helm自定义Istio安装,请使用--set <key>=<value>Helm命令中的选项覆盖一个或多个值 怎么使用选项配置请查看官网https: ...

  3. C++Builder中注册表的操作

    僮骶头浅5募虻チ耍旅嫖揖鸵砸桓鍪道此得鱐Registry类的用法.首先,先介绍一下TRegistry的属性和方法:TRegistry类一共有四个属性.属性 类型 描述CurrentKey int ...

  4. HDU 6064 RXD and numbers

    传送门 有向图生成树计数 (度数 ->入度->外向树) BEST定理 (不定起点的欧拉回路个数=某点为根的外向树个数(存在欧拉回路->每个点为根的外向树个数相等)*(每个点的度数(存 ...

  5. (转)H264--1--编码原理以及I帧B帧P帧 .

    转:http://blog.csdn.net/yangzhongxuan/article/details/8003504 ---------------------- 前言 ------------- ...

  6. 云-腾讯云-笔记:pom.xml 配置

    ylbtech-云-腾讯云-笔记:pom.xml 配置 1. pom.xml返回顶部 1.1 com.qcloud / 腾讯云 <!-- https://mvnrepository.com/ar ...

  7. MVC到底是设计模式还是一种框架还是一种架构? https://www.zhihu.com/question/31079945

    具体知乎讨论内容:https://www.zhihu.com/question/31079945 MVC到底是设计模式还是一种框架还是一种架构? 我认为它是3种设计模式的演变和组合:观察者模式(Obs ...

  8. WannaCry结束了? 安专家注册域名掐断病毒传播

    腾讯科技讯,(韩依民) 5 月 13 日,席卷全球的勒索病毒 WannaCry(也被称作 WanaCrypt 或 WCry),在今日晚间被互联网安全人员找到阻止其传播的方法. 据北京云纵信息技术有限公 ...

  9. this关键字、static关键字、block块、封装类以及继承、import、修饰符的初步了解

    this关键字 定义 在类的方法定义中使用this关键字代表使用该方法的引用. this即"自己",代表对象本身,谁调用代表谁.在成员方法中或构造器中隐式的传递. this的两种用 ...

  10. ">/dev/null 2>&1 "是什么意思

    在Linux中: 0:表示键盘输入(stdin) 1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr) shell命令:command >/dev/null  2&g ...