您的位置:首页 > 编程语言 > Java开发

hibernate_商城关系表的建立

2017-11-09 20:02 162 查看
使用hibernate建立表

1.建立表前,我们需要确定表的列,以及需要建立的表.

1.1 需要建立的表   用户表  商品表  分类表  订单表

1.2 寻找表与表的关系   用户 --  订单  --- 商品 -- 分类 

1.3 表分析

用户 -- 订单   一个用户可以有多个订单,一个订单只能有多个用户,如果一个订单能被多个用户拥有,那么就乱套了

商品 -- 分类  一个分类有多个商品,一个商品只能有一个分类.....

订单 -- 商品  一个订单中能出现多个商品,一个商品也能出现在多个订单中,因为商城的商品不可能只有一件把.所以我们能确定基本的关系为 多对多 , 解决方案  拆表 拆成一对多

表关系示意图    1 是 1的一方 ,n 是多的一方

 

弄清楚表关系以后,我们需要进一步的确认表中的字段,最后需求字段如下,

那么我们开始编写bean类

首先编写user 表

基本字段如下,持久化类建议使用封装数据类型,否则效率会很低

然后我们编写订单表,基本信息如下

我们已经确定关系,那么接下来我们确定hibernate关系规范

一对多:

一的一方要有多的一方对象的引用,也就是对象属性

多的一方要有一的一方set<Object> 对象集合,多的一方不能出现一的一方外键字段,

也就是说订单里的uid字段需要删除,并且增加User 的引用

然后我们修改一的一方,一的一方需要多的一方set<> 对象,在用户表里增加字段orders,需要set get方法

然后可以编写映射文件 order

编写user 映射文件

然后hiberna.cfg.xml引入 映射文件,我有配置自动生成表,

然后运行一下,看看生成的表 ,

接下来我们来写分类表跟商品表   , 也是一对多关系

首先我们确定需要的字段.

得到表后我们来变编写bean类

首先我们写category类

接下来我们写product 商品类

然后我们根据hibernate 规则来修改bean 类

一的一方要有多的一方的set对象集合,

多的一方要有一的一方的对象, 并且不能出现跟被约束字段一样的属性,

所以我们要删除Product 类里面的cid (相关字段),增加一的一方的对象属性

然后根据规则,在一的一方(Category)增加多方的set对象集合

然后配置Product 的映射文件

最后配置Category的映射文件

然后在hibernate.cfg.xml 文件引入

最后运行一下,查看生成的表

表结构

进一步分析

多对多关系:order  : product

拆成一对多,建立一张中间表,

1.确定中间表需要的字段,

因为中间表不止(pid,oid)俩个字段,所以我们不能使用hibernate 自动生成中间表的功能,所以我们自己建立一张中间表 ,

1.建立中间类orderitem

因为order 跟 product 之前已经建立了,所以我们只需要稍微修改一下即可,

order 跟product 都是一的一方 ,所以他们都需要多的一方的set<> 对象属性集合

在order  跟product 类中增加该字段,并且增加set get 方法

设置映射文件Product

设置order 映射文件

最后我们配置一下中间表的映射文件

最后在hibernate.cfg.xml 引入一下映射文件就行

最后demo 运行一下,就可能生成表了

终于完成啦 ,看一下我们的成果

本人菜鸟一枚,如果有地方不对,欢迎指出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息