实体类就是指普通的POJO,Hibernate并不知道那个实体类对应数据库的哪一张表,所以还需要配置一下,常用的方式就是*.hbm.xml文件[配置与@注解配置,这里介绍前者的详细属性:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- package声明pojo类所在的包,如果不写那么在class的name属性里需要指定包名全路径
schema指数据库模式,一个模式下可以有多张表
-->
<hibernate-mapping package="com.wang.pojo">
<!-- class指映射一下pojo类,提供了公共的无参构造方法,通过反射产生对象
属性用private修饰,并且生成get,set方法
类不能用final来修饰,
类需要指明标识 ,即id属性
name:表示pojo类名
table:标识对应的数据库表名 -->
<class name="User" table="user">
<!-- id:表示实体类的标识
对应数据库表中的主键
name:是指实体类的标识属性名
column表示对应数据库表的列名,如果不写,则数据库表中列名和属性名一致
length:标识数据库表中对应数据类型的长度,如果不写有默认长度
type表示类型,如果不写hibernate可以找到对应的pojo类的属性的类型,可以写成int,string,java.lang.Integer等等 -->
<id name="id" column="id" >
<!-- 主键生成策略
native:根据底层数据库能力选择identity,sequence,或者hilo中的一个 -->
<generator class="native"></generator>
</id>
<!-- 实体类属性 -->
<property name="name"/>
<property name="pwd"/>
</class> </hibernate-mapping>
  • 主键映射

  实体类最好有一个主键列,并有get/set方法,主键最好使用可以为Null值的数据类型,比如Integer,Long,String,而不要使用int ,long等,因为如果主键为null,表示这个实体类还没有保存到数据库,是一个临时状态(Transient),而int,long等基本数据类型没有这个功能.

  主键生成规则:也成为主键生成策略,用的最多的就是native(自增长策略),

    native:自动方式,根据底层数据库自动选择.

在class标签下,配置主键映射为:

<id name="id" column="id" >
<generator class="native"></generator>
</id>
  • 普通属性映射

  普通属性就是除主键外,java基本数据类型的属性,比如Integer(int),String,Date等,注意Integer默认为null,int默认为0.

  xml中使用<property />标签配置普通属性.type指定列类型,

  

日期属性配置,与普通属性配置相同,只是type中指定的是日期类型即可,取值可以有date,time,timestamp(简写方式)

       

  

hibernate笔记--实体类映射文件"*.hbm.xml"详解的更多相关文章

  1. Hibernate学习(3)- *.hbm.xml详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBL ...

  2. 【转】关系映射文件***.hbm.xml详解

    http://blog.sina.com.cn/s/blog_7ffb8dd5010144yo.html 附.Oracle使用标准.可变长度的内部格式来存储数字.这个内部格式精度可以高达38位. NU ...

  3. 【转】hibernate.hbm.xml详解

    在Hibernate中,各表的映射文件….hbm.xml可以通过工具生成,例如在使用MyEclipse开发时,它提供了自动生成映射文件的工具.配置文件的基本结构如下: Xml代码 <?xmlve ...

  4. 【转】hibernate中的映射文件xxx.hbm.xml详解总结

    一.Hibernate映射文件的作用: Hibernate映射文件是Hibernate与数据库进行持久化的桥梁 二,Hibernate映射文件主要内容:     (1).映射内容的定义: Hibern ...

  5. hibernate中的映射文件xxx.hbm.xml详解总结

    转自 http://blog.csdn.net/a9529lty/article/details/6454924 一.hibernate映射文件的作用: Hibernate映射文件是Hibernate ...

  6. hbm.xml 详解总结

    转自 http://blog.csdn.net/tuke_tuke/article/details/49717991 一.hibernate映射文件的作用: Hibernate映射文件是Hiberna ...

  7. [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. 使用oracle数据库和MySQL数据库时hibernate的映射文件.hbm.xml的不同

    假设是使用oracle数据库.那么hibernate的映射文件.hbm.xml例如以下: <id name="xuehao" column="xuehao" ...

  9. iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解

    iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解 iOS开发中,我们常常将一块View封装起来,以便于统一管理内部的子控件.如iOS回顾笔记(02)中的"书" ...

随机推荐

  1. java 过滤器Filter

    一.首先在web.xml里进行拦截过滤 <filter>        <filter-name>platformServiceAgreementFilter</filt ...

  2. CentOS6.5安装Eclipse

    安装说明 1.安装环境: CentOS6.5 64位系统 2.安装方式:tar.gz安装 3.软 件 包:eclipse-jee-luna-SR1-linux-gtk-x86_64.tar.gz 4. ...

  3. 工作总结_js

    工作至今已经有7个月了,虽然有进步,但是总感觉还是什么都不知道.可能这其中很大一部分还是与自己有关系,遇到自己不知道,问了人,或者百度到了,但是自己没有用心记.平时要用的时候,打开上一个项目,复制粘贴 ...

  4. ntfs-3g

    CentOS默认源里没有ntfs3g,想要添加ntfs支持,无非是自己下载编译安装或者加源yum安装. 昨天重新安装了一个CentOS7,用的是添加aliyun的epel源来yum安装的方式,简单易行 ...

  5. 华为oj 购物单

    这两天断断续续敲完这个(放假的时候比较懒),一次成功有点小激动(●'◡'●)  不过貌似从第一次打开开始计时..... 这道题目很像01背包,我将附件与它们的主件绑定(就是link起来)然后套用动态规 ...

  6. 总结Objective-c常用算法

          今天是星期天,想睡到10点起床,结果认为自己太奢侈了,不能这么做,于是把闹钟设置成了6:30:结果终于9:36醒了,起床,无缘无故迟了,好吧,就算太累了吧,周天就原谅自己一回.终于到了中午 ...

  7. JavaScript异步编程原理

    众所周知,JavaScript 的执行环境是单线程的,所谓的单线程就是一次只能完成一个任务,其任务的调度方式就是排队,这就和火车站洗手间门口的等待一样,前面的那个人没有搞定,你就只能站在后面排队等着. ...

  8. C++高精度计时器——微秒级时间统计

    在C++中,经常需要通过计时来统计性能信息,通过统计的耗时信息,来分析性能瓶颈,通常情况下,可能毫秒级别的时间统计就足够用了,但是在毫厘必争的性能热点的地方,毫秒级别的统计还是不够的,这种情况下,就需 ...

  9. 有点担心Node.js的未来了

    原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com 首先本文的目的不是引发语言之争,纯属个人的一些思绪记录. 因为工作原因,用Node.js做过几个项目,基本都是涉及 ...

  10. Android学习第一天-adb常用命令

    平时开发android应用 的时候,我们都会用到包含在Android SDK中一系列的工具,或许我们通过Eclipse去调用,又或许,我们自己通过打开终端进行手动输入并且执行,下面我们来一起学习下这些 ...