介绍
小编这次要给大家分享的是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实体类怎么处理外键