基于Hibernate实现CRUD

本文详细介绍了如何利用Hibernate设计通用接口,实现对Java对象的增查改删操作,旨在掌握Hibernate的主要接口使用、持久化接口设计以及性能优化方法。文中通过供应链描述系统为例,展示了业务实体如供应商、厂商、客户、订单的映射关系,并提供了相关的Hibernate映射文件配置代码。
摘要由CSDN通过智能技术生成


1.本次博客的内容是使用Hibernate设计通用接口实现对Java对象进行增查改删(CRUD)的工作;主要目的如下:

掌握Hibernate的主要接口使用;

掌握设计持久化接口的基本方法;

熟悉提高Hibernate使用性能的方法;

2.系统概述如下:

本系统可以理解为一个产品的供应链描述系统,由供应商、厂商、客户、订单组成。映射关系描述如下图所示

                   

                            

                                                    图1 系统之间的映射关系

3.项目目录截图如下:




4.主要代码实现如下:

(1)business.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

 <!-- 配置类和表结构的映射 -->
 <class name="domain.business" table="business"><!-- 包名 数据库表名 -->
  <!-- 配置id
   见到name属性,JavaBean的属性  (domain的属性)
   见到column属性,是表结构的字段
  -->
  <id name="id" column="id"> <!-- 只有主键是 id 剩下的写property
   主键的生成策略 -->
   <generator class="native"/>
  </id>
  
  <!-- 配置其他的属性 -->
  <property name="CorporateName" column="CorporateName"/>
  <set name="user">
            <key column="bid"/>
            <one-to-many class="domain.User"/>
        </set>
 </class>
 
</hibernate-mapping>   

(2)/Order.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

 <!-- 配置类和表结构的映射 -->
 <class name="domain.order" table="order"><!-- 包名 数据库表名 -->
  <!-- 配置id
   见到name属性,JavaBean的属性  (domain的属性)
   见到column属性,是表结构的字段
  -->
  <id name="id" column="id"> <!-- 只有主键是 id 剩下的写property
   主键的生成策略 -->
   <generator class="native"/>
  </id>
  
  <!-- 配置其他的属性 -->
  <property name="address" column="address"/>
  <property name="price" column="price"/>
  <!-- 多对一关系 -->
  <many-to-one name="user" class="domain.User" column="uid">
  </many-to-one>
  
 </class>
 
</hibernate-mapping>   

(3)Source.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

 <!-- 配置类和表结构的映射 -->
 <class name="domain.Source" table="source"><!-- 包名 数据库表名 -->
  <!-- 配置id
   见到name属性,JavaBean的属性  (domain的属性)
   见到column属性,是表结构的字段
  -->
  <id name="id"> <!-- 只有主键是 id 剩下的写property
   主键的生成策略 -->
   <generator class="foreign">
   <param name="property"> user </param>
   <!--上面那句的作用  -->   
   </generator>
  </id>
  
  <!-- 配置其他的属性 -->
  <property name="sourceName" column="username"/>

  <one-to-one name="user" constrained="true"/>
  
  
  
 </class>
 
</hibernate-mapping>   

(4)User.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

 <!-- 配置类和表结构的映射 -->
 <class name="domain.User" table="user"><!-- 包名 数据库表名 -->
  <!-- 配置id
   见到name属性,JavaBean的属性  (domain的属性)
   见到column属性,是表结构的字段
  -->
  <id name="id" column="id"> <!-- 只有主键是 id 剩下的写property
   主键的生成策略 -->
   <generator class="native"/>
  </id>
  
  <!-- 配置其他的属性 -->
  <property name="username" column="username"/>
      <!-- 一对多  -->
        <set name="messages">
            <key column="uid"/>
            <one-to-many class="domain.message"/>
        </set>
  
  <!-- 多对一关系 -->
  <many-to-one name="business" class="domain.business" column="bid">
  </many-to-one>
 
 </class>
 
</hibernate-mapping>   



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值