JavaBean实体类怎么处理外键

  介绍

小编这次要给大家分享的是JavaBean实体类怎么处理外键,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

数据库中的表在映射为JavaBean的实体类时,实体类的字段名应与数据库表中的字段名一致。那么外键要怎么处理,# 63;

1。JavaBean中实体类中不应该出现外键字段,弊端如下:

如果出现外键对应的字段,那么将会出现一个对象与另一个对象的属性相对应,这将不是面向对象中的对象与对象对应。

单个外键只能存储一个字符串,用处不大

2。外键处理方式:数据库表中的外键字段应当转换成外键对应的表的对象,也就是JavaBean的实体类不声明外键的字段,而是声明外键对应数据表类的类型。举个例子,如下:

数据库建表如下:

——1.1创建用户表
  创建表“用户”(
  “uid”varchar(32)不是NULL, #用户编的号
  “用户名”varchar(20)默认为空,#用户名
  “密码”varchar(20)默认为空,#密码
  “名字”varchar(20)默认为空,#昵称
  “电子邮件”varchar(30)默认为空,#电子邮箱
  “电话”varchar(20)默认为空,#电话
  “生日”日期默认为空,#生日
  “性”varchar(10)默认为空,#性别
  '国家' int(11)默认0 #状态:0=未激活,1=已激活
  “代码”varchar(64)默认为空,#激活码
  主键(“uid”)
  )引擎=InnoDB;
  
  ——2.1创建分类表
  创建表“类别”(
  cid的varchar(32)非空,
  的cname varchar(20)默认为空,#分类名称
  主键(cid)
  )引擎=InnoDB;
  
  ——3.1创建商品表
  创建表的“产品”(
  “pid”varchar(32)非空,
  ‘pname varchar(50)默认为空,#商品名称
  “market_price”双重默认为空,#市场价
  “shop_price”双重默认为空,#商城价
  “pimage”varchar(200)默认为空,#商品图片路径
  “pdate”日期默认为空,#上架时间
  “is_hot”int(11)默认为空,#是否热门:0=不热门,1=热门
  “pdesc”varchar(255)默认为空,#商品描述
  '事件' int(11)默认0 #商品标记:0=未下架(默认值),1=已经下架
  cid的varchar(32)默认为空,#分类id
  主键(“pid”),
  关键的product_fk_0001 (cid),
  约束的product_fk_0001外键(cid)引用“类别”(cid)
  )引擎=InnoDB;
  
  ——4创建订单表
  创建表的顺序(
  oid的varchar(32)非空,
  “ordertime”datetime默认为空,#下单时间
  “总”双重默认为空,#总价
  “状态”int(11)默认为空,#订单状态:1=未付款;2=已付款,未发货;3=已发的货,没收货;4=收的货,订单结束
  “地址”varchar(30)默认为空,#收获地址
  “名字”varchar(20)默认为空,#收获人
  “电话”varchar(20)默认为空,#收货人电话
  “uid”varchar(32)默认为空,
  主键(oid),
  关键“order_fk_0001”(“uid”),
  约束的order_fk_0001外键(uid)引用“用户”(“uid”)
  )引擎=InnoDB;
  
  ——5创建订单项表
  创建表的orderitem (
  itemid varchar(32)非空,
  “数量”int(11)默认为空,#购买数量
  “总”双重默认为空,#小计
  “pid”varchar(32)默认为空,#购买商品的id
  oid的varchar(32)默认为空,#订单项所在订单id
  主键(“itemid”),
  关键“order_item_fk_0001”(“pid”),
  关键的order_item_fk_0002 (oid),
  约束的order_item_fk_0001外键(pid)引用“产品”(“pid”),
  约束的order_item_fk_0002外键(oid)引用“秩序”(oid)
  )引擎=InnoDB; 

其中订单与订单项的JavaBean的实体类如下:

/* *   *订单项   */公开课OrderItem {      私人字符串itemid;//订单项编的号   私人整数的数量;//购买数量   私人双总;//小计      私人产品产品;//商品对象   私人秩序秩序;//订单项所在订单对象   ……   }/* *   *订单实体类   */公共类{      私人字符串oid;//订单编的号   私人ordertime日期;//下单时间   私人双总;//总价   私人整数状态;//订单状态:1:未付款2:已付款,未发货3:已发的货,未收货4:已收的货,订单结束   私人字符串地址;//收货地址   私人字符串名称;//收件人姓名:收件人不一定是购买人   私人电话字符串;//收件人电话      私人用户用户;//订单所属的用户      私人List,列表=new ArrayList<的在();//订单项集合   ……   }

JavaBean实体类怎么处理外键