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

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>

 

 

 

 

 


 

 

 

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值