hibernate笔记--实体类映射文件"*.hbm.xml"详解

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

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

       

  

相关文章
|
4月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
120 1
|
3月前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
55 2
|
3月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
337 8
|
4月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
54 3
|
4月前
|
XML 存储 缓存
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
206 0
|
4月前
|
XML 存储 Web App开发
查看 XML 文件
查看 XML 文件
|
5月前
|
Java 数据库连接 API
解锁高效开发秘籍:深入探究 Hibernate 如何优雅处理一对多与多对多关系,让数据映射再无烦恼!
【9月更文挑战第3天】Hibernate 是 Java 领域中最流行的 ORM 框架之一,广泛用于处理实体对象与数据库表之间的映射。尤其在处理复杂关系如一对多和多对多时,Hibernate 提供了丰富的 API 和配置选项。本文通过具体代码示例,展示如何使用 `@OneToMany`、`@JoinColumn`、`@ManyToMany` 和 `@JoinTable` 等注解优雅地实现这些关系,帮助开发者保持代码简洁的同时确保数据一致性。
104 4
|
9月前
|
SQL 缓存 Java
框架分析(9)-Hibernate
框架分析(9)-Hibernate
|
3月前
|
缓存 Java 数据库连接
Hibernate:Java持久层框架的高效应用
通过上述步骤,可以在Java项目中高效应用Hibernate框架,实现对关系数据库的透明持久化管理。Hibernate提供的强大功能和灵活配置,使得开发者能够专注于业务逻辑的实现,而不必过多关注底层数据库操作。
37 1
|
6月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
85 1

相关课程

更多