一对多单向关联关系理解与实践

这篇博客主要面向Hibernate初学者,详细介绍了如何理解和实现一对多单向关联关系,以生产商和产品为例,通过代码示例展示了配置文件、实体类的创建以及数据库操作。作者提醒注意配置文件中的数据库信息,并提供了两种建表方法。文章最后提到,虽然一对多关联常用,但因效率问题建议考虑使用多对一关系。
摘要由CSDN通过智能技术生成

本人是hibernate的初学者,以下是我对于hibernate实体关联关系中一对多单向关联关系的理解,希望对于初学者在理解这一部分内容的时候有帮助。

hibernate中一对多单向关联关系主要是对应数据库中的一对多的关系,其实这是一种非常常见的关系,这里以生产商(factory)和产品(product)为例进行讲解。

使用开发工具:
IDE:eclipse
数据库:MySql

【以下使用代码下载地址:http://download.csdn.net/detail/liu_005/9163051

1、建表:(方法一)
这里我们用sql语句建表(下面有另外的方法,可以不使用sql语句建表),当然建立数据库的语句就不在这里写了,你自己随便建个数据库就行(记得等下在hibernate.cfg.xml中修改成对应数据库就行),sql语句如下:

生厂商表

DROP TABLE IF EXISTS `tab_factory`;
CREATE TABLE `tab_factory` (
  `factoryId` int(11) NOT NULL AUTO_INCREMENT,
  `factoryName` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`factoryId`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=latin1;

产品表

DROP TABLE IF EXISTS `tab_product`;
CREATE TABLE `tab_product` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) NOT NULL,
  `price` double NOT NULL,
  `factory_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=latin1;

2、数据表建完后,我们开始编辑配置文件:
(1)编写hibernate全局配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 <hibernate-configuration>
    <session-factory>
        <!-- 开启二级缓存 -->
        <property name="hibernate.cache.use_second_level_cache">true</property>
        <!-- 指定缓存产品提供商 -->
        <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
        <!-- 数据库驱动 -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- 数据库连接的URL -->
        <property name="connection.url">jdbc:mysql://localhost:3306/test</property>
        <!-- 数据库连接用户名 -->
        <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值