首页 > 其他分享 >hibernate:映射文件hbm.xml详解

hibernate:映射文件hbm.xml详解

时间:2022-08-19 10:27:29浏览次数:60  
标签:hbm xml hibernate 映射 实体类 主键 属性

转载:http://www.cnblogs.com/fingerboy/p/5233939.html

实体类就是指普通的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(简写方式)

 

  转载于:https://www.cnblogs.com/liaoyanglong/p/6212093.html

标签:hbm,xml,hibernate,映射,实体类,主键,属性
From: https://www.cnblogs.com/LXLR/p/16601071.html

相关文章

  • spring5 ioc 管理xml
    1.注入空值<propertyname="tag"><null></null></property>2.特殊字符<propertyname="name"><value><![CDATA[<<java入门到精通>>]]><......
  • 从XXE漏洞修复引起Not supported: http://javax.xml.XMLConstants/property/accessExt
    引子 在使用Fortify扫描时代码报XMLExternalEntityInjection,此漏洞为xml实体注入漏洞,XXE攻击可利用在处理时动态构建文档的XML功能。修复方案也包含了增加安全......
  • sqli-labs第5关updatexml报错注入
      这里选用的是第五关进行演示,首先根据页面提示输入?id=1页面返回的都是正常,输入?id=1'时,页面报错了,        接着判断字段数,这里选择用?id=1order......
  • SQL 解析 XML
    1.使用nodes和value解析XML<!--ItemsXmlcolumncontentsomethinglikethis--><GoodsReceiveNoteItemView><Location>KRCK</Location><ProductName>SoonHock,......
  • opencv中XML文件的读与写
    opencv中XML文件的读与写OpenCV中有相关的函数对XML文件进行写与读的操作,FileStoragefs("../xml/read.xml",FileStorage::WRITE);FileStoragefs2("../xml/read.xml",......
  • 2022最新有效 哔哩哔哩Bilibili手机端.m4s文件缓存转.mp4教程 支持每个视频单独一个文
    项目地址:https://github.com/kaixinol/BiliCache2MP4下载地址:https://github.com/kaixinol/BiliCache2MP4/releases/https://pan.baidu.com/s/16lcp5HLjkZG8MGN_MhX9gA......
  • mybatis_8_在pom.xml中添加lombok
    在pom.xml中添加lomboklombok通过简单的注解形式消除定义JavaBean时所需要生成的一系列属性方法:https://projectlombok.org/setup/maven示例:<dependency><groupId>......
  • mybatis_05_创建mapper.xml
    创建mapper.xml示例IndicatorMapper.xml:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""h......
  • DOM4J使用XPath解析含有xmlns的xml文档
    一、没有引入Shema约束的XML文档<?xmlversion="1.0"encoding="UTF-8"?><书架><书><书名>JavaWeb开发大全</书名><作者>班长</作者>......
  • Digester解析xml原理
    Tomcat内部是使用Digester来解析xml文件的,将xml转化为java对象。digester底层是基于SAX+事件驱动+栈的方式来搭建实现的,SAX主要用来解析xml,事件驱动主要是在解析的过程中......