Hibernate的映射文件的hbm.xml的配置方法

xiaoxiao2021-02-28  68

Hibernate的映射文件的hbm.xml的配置方法

1、eclipse中创建xml文件

2、引入xml文件的头文件

<?xml version="1.0" encoding="UTF-8"?>

3、引入hibernate的映射文件的约束

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

4、书写hibernate的映射配置

1、hibernate的映射内容都在<hibernate-mapping></hibernate-mapping>里并且可以在<hibernate-mapping package=””>里配置所在包。

2、Hibernate的映射文件主要就是为了不用操作数据库,直接操作该类中的属性即可。所以必须让数据库表里的字段和类中的成员变量相对应。当然映射文件本身就属于类内容所以第二部就是书写<class>   </class>

其中class包含两个属性:

<class name="Users" table="t_user">

namepojo类名,table是所对应的数据库表名。

3、除此之外,数据库表中都有个主键,这里也需要指定,就建立一个<id></id>包含内容有指明数据库表和对应类中的主键,还有主键的生成策略在<class></class>内包含。

<id name="id" column="id" type="int" length="11">

这个就是配置主键的,其中name是类中的,column对应的是数据库表中的。此外还写了id的类型,和长度。

然后就是主键生成策略的配置了

<generator class="increment"></generator>

主键生成策略有uuidassgiend,sequence,和increment里面的区别可以在网上查查。

此时的情况是这样的

<hibernate-mapping> <class> <id> </id> </class> </hibernate-mapping>

4、<class>包含中还有一个<property></property>

大家这样想,表有对应的了,主键有对应的了,但是表中的各个字段还没对应啊。

<property name="username" column="username" type="java.lang.String" length="20"></property>

<property >包含两个属性,name表示类中的成员变量column表示对应的数据库表中的相对应的字段名。剩下的就是hibernate对应的type类型,和字段长度

5、然后就是一对多和多对一的映射配置。

这是hibernate的关系映射包含一对多,多对一,多对多

一个老师可以教多个学生这是一对多

多个学生可以被一个老师教这是多对一

一个项目可以由多个开发人员参与完成,一个开发人员可以参与多个项目。这是多对多。

下面是一个客户有多个联系人一对多的配置方法

那么首先看一对多的写法,当然在<class></class>包含内

 

这是一对多的写法

此外还要在一方配置set属性,

 

 

总结一下就是:首先在一方中配置set属性

然后在映射文件中配置相应的set配置。

 

6、下面是多对一的写法(多个联系人对应一个客户)

首先在联系人的类中配置相应的属性。

 

其次在多方的映射文件中配置set配置(联系人)

 

一、一固定,添加多的

配置cascade=”save-update”

删除客户时有外键约束怎么办,采用hibernate的级联删除方法。

配置cascade=”delete”

 

 

由此可见:

 

1、配置多对一和一对多,这个是相互的,既然有一对多就有多对一,两边都要配置。

2、先写pojo层,的成员变量配置。

3、在到相对应的映射文件里书写set配置。

6、多对多的配置:

一个用户拥有多个角色

一个角色下边有多个用户

用户和角色多对多关系,单独创建一个关系表记录用户拥有什么角色。

 

创建sys_usersys_rolesys_user_role三张表

配置多对多在类中用户方需要配置:

 

Hbm.xml配置

 

然后就是角色方类的配置:

 

Hbm.xml配置:

 

 

就这些吧初次总结,第一次总结hibernate映射配置。希望不要乱喷,谢谢大家。

最后总结一下整个hbm.xml的大致样子

 

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name=”” table=””> <id> <gererator /> </id> <property></property> <set> <key></key> <one-to-many/> </set> <many-to-one></many-to-one> </class> </hibernate-mapping>

 

 

 

 

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-2628402.html

最新回复(0)