电子拍卖系统开发:

功能流程图:

数据库设计:

说明:
物品表(item)、物品种类表(kind)、物品状态表(state)、竞价历史表(bid)、用户表(auction_user)
表之间的关系:
物品种类与物品:一对多,物品与物品状态:一对多,物品与竞价历史:一对多
用户与竞价历史:一对多,用户与物品:一对多

SQL语句创建:

drop database if exists auction;create database auction;use auction;#用户表
create table auction_user(user_id int(11) auto_increment,username varchar(50) not null,userpass varchar(50) not null,email varchar(100) not null,primary key(user_id),unique(username)
);INSERT INTO auction_user (username,userpass,email) VALUES ('tomcat','tomcat','spring_test@163.com');
INSERT INTO auction_user (username,userpass,email) VALUES ('mysql','mysql','spring_test@163.com');#物品种类表
create table kind(kind_id int(11) auto_increment,kind_name varchar(50) not null, kind_desc varchar(255) not null,primary key(kind_id)
);INSERT INTO kind (kind_name,kind_desc) VALUES ('电脑硬件','这里并不是很主流的产品,但价格绝对令你心动');
INSERT INTO kind (kind_name,kind_desc) VALUES ('房产','提供非常稀缺的房源');#物品状态表
create table state(state_id int(11) auto_increment,state_name varchar(10),primary key(state_id)
);INSERT INTO state (state_name) VALUES ('拍卖中');
INSERT INTO state (state_name) VALUES ('拍卖成功');
INSERT INTO state (state_name) VALUES ('流拍');#物品表
create table item(item_id int(11) auto_increment,item_name varchar(255) not null,item_remark varchar(255),item_desc varchar(255),kind_id int(11) not null, addtime date not null,endtime date not null,init_price double not null, max_price double not null, owner_id int(11) not null, winer_id int(11), state_id int(11) not null, primary key(item_id),FOREIGN KEY(kind_id) REFERENCES kind(kind_id), FOREIGN KEY(owner_id) REFERENCES auction_user(user_id),FOREIGN KEY(winer_id) REFERENCES auction_user(user_id),FOREIGN KEY(state_id) REFERENCES state(state_id)
); # 拍卖中的物品
INSERT INTO item ( item_name , item_remark , item_desc, kind_id, addtime , endtime, init_price,  max_price,  owner_id,  winer_id,  state_id)VALUES ( '主板', '老式主板', '老主板,还可以用', 1, ADDDATE(CURDATE(), -5), ADDDATE(CURDATE(), 30) , 230, 250, 1,  null,  1);
# 流派的物品
INSERT INTO item ( item_name , item_remark , item_desc, kind_id, addtime , endtime, init_price,  max_price,  owner_id,  winer_id,  state_id)VALUES ( '显卡', '老式显卡', '老显卡,还可以用', 1, ADDDATE(CURDATE(), -9), ADDDATE(CURDATE(), -2), 210, 210, 2,  null,  3);
# 被竞得的物品
INSERT INTO item ( item_name , item_remark , item_desc, kind_id, addtime , endtime, init_price,  max_price,  owner_id,  winer_id,  state_id)VALUES ( '老房子', '老式房子', '40年的老房子', 2, ADDDATE(CURDATE(), -9), ADDDATE(CURDATE(), -5), 21000, 25000, 2,  1,  2);#竞标历史表
create table bid(bid_id int(11) auto_increment,user_id int(11) not null,item_id int(11) not null,bid_price double not null,bid_date date not null, primary key(bid_id),unique(item_id , bid_price),FOREIGN KEY(user_id) REFERENCES auction_user(user_id), FOREIGN KEY(item_id) REFERENCES item(item_id)
);INSERT INTO bid ( user_id , item_id , bid_price, bid_date)VALUES ( 2, 1, 250, ADDDATE(CURDATE(), -2));
INSERT INTO bid ( user_id , item_id , bid_price, bid_date)VALUES ( 1, 3, 25000, ADDDATE(CURDATE(), -6));

所需实现的功能:

对于物品的管理,本系统可以查询拍卖物品,添加拍卖物品,增加物品种类,竞价处理以及发送邮件通知用户所参与的竞价。
  • 注册用户可以添加用户物品,添加物品种类。添加之前必须登录系统。
  • 注册用户可以浏览当前拍卖中的物品,以及流拍的物品。
  • 注册用户可以参与竞价,参与的竞价系统将通过邮件通知用户。

搭建web服务器:

PO对象的创建:

PO(persistant object) 持久对象 
通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
User.java
public class User implements Serializable{private Integer user_id;private String username;private String userpass;private String email;
}

Item.java
public class Item implements Serializable {// 标识属性private Integer item_id;// 物品名称private String item_name;// 物品Remarkprivate String item_remark;// 物品描述private String item_desc;// 物品添加时间private Date addtime;// 物品结束拍卖时间private Date endtime;// 物品的起拍价private double init_price;// 物品的最高价private double max_price;// 该物品的所有者private User owner;// 该物品所属的种类private Kind kind;// 该物品的赢取者private User winer;// 该物品所处的状态private State itemState;// 该物品对应的全部竞价记录private Set<Bid> bids = new HashSet<Bid>();
}

Kind.java
public class Kind implements Serializable{// 标识属性private Integer kind_id;// 种类名private String kind_name;// 种类描述private String kind_desc;// 该种类下的所有物品private Set<Item> items = new HashSet<Item>();
}

State.java
public class State implements Serializable{// 标识属性private Integer state_id;// 物品的状态名private String state_name;// 该状态下的所有物品private Set<Item> items = new HashSet<Item>();
}

Bid.java
public class Bid implements Serializable{// 标识属性private Integer bid_id;// 竞价的价格private double bid_price;// 竞价的日期private Date bid_date;// 本次竞价所竞拍的物品private Item item_id;// 参与竞价的用户private User user_id;
}

VO对象的创建:

VO(value object) 值对象 
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。
ItemBean.java
package com.xbmu.business;import java.util.Date;
public class ItemBean{private Integer id;private String name;private String desc;private String remark;private String kind;private String owner;private String winer;private String state;private double initPrice;private double maxPrice;private Date addTime;private Date endTime;// 无参数的构造器public ItemBean(){}// 初始化全部属性的构造器public ItemBean(Integer id , String name , String desc , String remark,String kind , String owner , String winer , String state ,double initPrice , double maxPrice , Date addTime , Date endTime){this.id = id;this.name = name;this.desc = desc;this.remark = remark;this.kind = kind;this.owner = owner;this.winer = winer;this.state = state;this.initPrice = initPrice;this.maxPrice = maxPrice;this.addTime = addTime;this.endTime = endTime;}
//...省略set和get方法
}

BidBean.java

package com.xbmu.business;import java.io.Serializable;
import java.util.Date;
public class BidBean implements Serializable
{private int id;private String user;private String item;private double price;private Date bidDate;// 无参数的构造器public BidBean(){}// 初始化全部属性的构造器public BidBean(int id , String user , String item ,double price , Date bidDate){this.id = id;this.user = user;this.item = item;this.price = price;this.bidDate = bidDate;}
//...
}   

KindBean.java

package com.xbmu.business;public class KindBean{private int id;private String kindName;private String kindDesc;// 无参数的构造器public KindBean(){}// 初始化全部属性的构造器public KindBean(int id , String kindName , String kindDesc){this.id = id;this.kindName = kindName;this.kindDesc = kindDesc;}
//...
}

电子拍卖系统开发第一天相关推荐

  1. 电子拍卖系统开发第二天

    一.搭建简单的web服务器 首先简单看一下web工程目录及其包的构建: 导入jar包 业务层接口:BussinessService.java package com.xbmu.service;impo ...

  2. 电子拍卖系统开发第四天

    今天主要整理了一下服务端代码.前面一直遇到一个问题?管理人员既能在后台web上可以管理物品等功能,可以实现物品种类的添加,查询,物品的添加及其浏览等一些功能.一直想将管理人员操作这些功能的界面写的也比 ...

  3. 电子拍卖系统毕业设计

    技术:Java.JSP等 摘要: 随着Internet的日益普及和电子商务的发展,网上拍卖迅速成为一种非常活跃的C2C电子商务模式.文中详细介绍了JSP技术以及分析了基于JSP建立网上拍卖系统的技术手 ...

  4. flutter图标按钮_Flutter开发第一个项目android studio 开发工具的使用说明

    Flutter开发第一个项目android studio 开发工具的使用说明 做个自我介绍 自我介绍还是有必要介绍一下的,毕竟这是网络里,你看不到我,我看不到你,只能通过文字来传递信息,本人做技术8年 ...

  5. C#苹果应用开发——第一讲初始Xamarin

     C#苹果应用开发--第一讲初始Xamarin Xamarin ios 教程 Xamarin跨平台开发 C#苹果应用开发 观看地址:v.youku.com/v_show/id_XNzEwOTYzNjU ...

  6. C#苹果应用开发——第一讲初始Xamarin Xamarin ios 教程 Xamarin跨平台开发

    C#苹果应用开发--第一讲初始Xamarin   Xamarin ios 教程 Xamarin跨平台开发 C#苹果应用开发 教程观看地址:v.youku.com/v_show/id_XNzA3OTUx ...

  7. ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

    ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了一些例 ...

  8. 利用Hyperledger Fabric开发第一个区块链应用

    利用Hyperledger Fabric开发第一个区块链应用 Fabric入门 Fabric 我们通过一个简单的示例程序来了解Fabric应用是如何运行的.在这个例子中使用的应用程序和智能合约(链码) ...

  9. 嵌入式应用开发第一阶段

    本文主要讲如何搭建嵌入式开发环境以及文件传输到开发板的两种方式 一.准备开发环境 软件 SecureCRT  串口工具.tftpd64   tftp文件传输工具.vmware虚拟机+Ubuntu系统 ...

最新文章

  1. 基于Tkinter利用python实现颜色空间转换程序
  2. Meta祭出元宇宙「阿拉丁神灯」!LeCun称世界模型将带来像人一样的AI
  3. Linux_LVM、RAID_RHEL7
  4. 消除左递归c++代码_「leetcode」129. 求根到叶子节点数字之和【递归中隐藏着回溯】详解...
  5. 计算机组成原理关键路径,2020年834数据结构、计算机组成原理大纲(13页)-原创力文档...
  6. 路由器硬件升级和软件改造
  7. 安卓永久修改像素密度
  8. 网卡基本配置2(主机名修改、网卡绑定)
  9. ****彩印管理系统部署及开发心得
  10. 赚钱游戏APP套路有哪些?
  11. 细数一次装修中遇到的几十个坑
  12. 字节跳动校招内推开始了
  13. 【vue js】省市区js数据转为tree结构
  14. Oracle 分析函数 over 和MySQL 实现类似效果写法
  15. 申请计算机专业有关个人陈述吗,美国计算机博士申请个人陈述范文
  16. Uedit32比较2个文件的内容
  17. 计算机系统 计算机硬件教案,计算机硬件组成教案.docx
  18. C# 实现拼手气红包算法整理
  19. 快速学习-在线人数统计
  20. python 进行抓包嗅探

热门文章

  1. DirectFBGL
  2. 八种坏情绪让男人生病
  3. 成长初期(社团经历)
  4. 【个人学习用】利用随机森林学习调参总结
  5. 安装win7+ubuntu双系统后丢失win7启动项
  6. 上海证券交易所开放api 查询证券编码及基本上市信息
  7. 比较尿沉渣与尿常规检验结果的相关性分析
  8. 苹果加密技术真安全吗?一男子入侵数千个iCloud账号获取女性裸照
  9. Blender Rigify版街霸角色隆(Ryu)绑定下载(10月18日)
  10. 学习pandas数据透视表