畢設(一)
校園商鋪
終於要開始做畢設了,太難了
前提是搭建maven,平臺用的是eclipse。
此處可百度看教程。
接下來開始重頭戲!!
o2o就當是這個項目的名字吧。
- 在此之前搞清楚各實體類的聯繫
微信賬號和本地賬號通過用戶信息的i聯繫在一起
商鋪信息和區域信息通過區域id連接
店鋪信息的店鋪id和店鋪類別做關聯
商品信息通過product.id與商品類別相關聯
詳情圖片通過product.id與商品信息相關聯
1.實體類設計
區域設計
區域類代碼
在one這個項目下的Java Resources下的src/main/java創建實體包,名爲com.one.entity,在這個包下面創建Area.java
詳細代碼如下:
package com.one.entity;
import java.util.Date;
public class Area {
//ID
private Integer areaId;
//名稱
private String areaName;
//權重(做排序)
private Integer priority;
//創建時間
private Date createTime;
//更新時間
private Date lastEditTime;
public Integer getAreaId() {
return areaId;
}
public void setAreaId(Integer areaId) {
this.areaId = areaId;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getLastEditTime() {
return lastEditTime;
}
public void setLastEditTime(Date lastEditTime) {
this.lastEditTime = lastEditTime;
}
}
區域類sql語句(在此之前先創建一個名爲"one”的數據庫)
CREATE TABLE `tb_area` (
`area_id` int(2) NOT NULL AUTO_INCREMENT ,
`area_name` varchar(200) NOT NULL ,
`priority` int(2) NOT NULL DEFAULT '0' ,
`create_time` datetime DEFAULT NULL ,
`last_edit_time` datetime DEFAULT NULL ,
PRIMARY KEY (`area_id`),
unique key `UK_AREA`(`area_name`)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
用戶設計
在one這個項目下的Java Resources下的src/main/java創建實體包,名爲com.one.entity,在這個包下面創建PersonInfo.java
詳細代碼如下:
package com.one.entity;
import java.util.Date;
public class PersonInfo {
private Long userId;
private String name;
private String profileImg;
private String email;
private String gender;
//用戶狀態
private Integer enableStatus;
//1.顧客 2.店家 3.超級管理員
private Integer userType;
private Date createTime;
private Date lastEditTime;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getProfileImg() {
return profileImg;
}
public void setProfileImg(String profileImg) {
this.profileImg = profileImg;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Integer getEnableStatus() {
return enableStatus;
}
public void setEnableStatus(Integer enableStatus) {
this.enableStatus = enableStatus;
}
public Integer getUserType() {
return userType;
}
public void setUserType(Integer userType) {
this.userType = userType;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getLastEditTime() {
return lastEditTime;
}
public void setLastEditTime(Date lastEditTime) {
this.lastEditTime = lastEditTime;
}
}
用戶類sql語句
CREATE TABLE `tb_person_info` (
`user_id` int(10) NOT NULL AUTO_INCREMENT ,
`name` varchar(32) DEFAULT NULL ,
`profile_img` varchar(1024) DEFAULT NULL ,
`email` varchar(1024) DEFAULT NULL ,
`gender` varchar(2) DEFAULT NULL ,
`enable_status` int(2)NOT NULL DEFAULT '0' COMMENT '0:禁止使用本商城,1:允許使用本商城',
`user_type` int(2) NOT NULL DEFAULT '1' COMMENT '1:顧客,2:店家,3:超級管理員',
`create_time` datetime DEFAULT NULL,
`last_edit_time` datetime DEFAULT NULL,
primary key(`user_id`)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
賬號設計
與上邊同樣的道理,建立WechatAuth.java類
詳細代碼如下
package com.one.entity;
import java.util.Date;
public class WechatAuth {
private Long wechatAuthId;
private String openId;
private Date createTime;
//與個人信息表相連接
private PersonInfo personInfo;
public Long getWechatAuthId() {
return wechatAuthId;
}
public void setWechatAuthId(Long wechatAuthId) {
this.wechatAuthId = wechatAuthId;
}
public String getOpenId() {
return openId;
}
public void setOpenId(String openId) {
this.openId = openId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public PersonInfo getPersonInfo() {
return personInfo;
}
public void setPersonInfo(PersonInfo personInfo) {
this.personInfo = personInfo;
}
}
對應的sql語句爲
CREATE TABLE `tb_wechat_auth` (
`wechat_auth_id` int(10) NOT NULL AUTO_INCREMENT ,
`user_id` int(10) NOT NULL ,
`open_id` varchar(1024) NOT NULL ,
`create_time` datetime DEFAULT NULL,
primary key(`wechat_auth_id`),
constraint `fk_wechatauth_profile` foreign key(`user_id`) references `tb_person_info`(`user_id`)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
建立LocalAuth.java類
詳細代碼如下
package com.one.entity;
import java.util.Date;
public class LocalAuth {
private Long localAuthId;
private String username;
private String password;
private Date createTime;
private Date lastEditTime;
private PersonInfo personInfo;
public Long getLocalAuthId() {
return localAuthId;
}
public void setLocalAuthId(Long localAuthId) {
this.localAuthId = localAuthId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getLastEditTime() {
return lastEditTime;
}
public void setLastEditTime(Date lastEditTime) {
this.lastEditTime = lastEditTime;
}
public PersonInfo getPersonInfo() {
return personInfo;
}
public void setPersonInfo(PersonInfo personInfo) {
this.personInfo = personInfo;
}
}
所對應的sql語句如下:
CREATE TABLE `tb_local_auth` (
`local_auth_id` int(10) NOT NULL AUTO_INCREMENT ,
`user_id` int(10) NOT NULL ,
`username` varchar(128) NOT NULL ,
`password` varchar(128) NOT NULL ,
`create_time` datetime DEFAULT NULL,
`last_edit_time` datetime DEFAULT NULL,
primary key(`local_auth_id`),
UNIQUE KEY `uk_local_profile`(`username`),
constraint `fk_localauth_profile` foreign key(`user_id`) references `tb_person_info`(`user_id`)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
增加唯一索引sql語句:目的在於提升查詢效能
alter table tb_wechat_auth add unique index(open_id);
頭條類創建
同理創建HeadLine.java
詳細代碼如下:
package com.one.entity;
import java.util.Date;
public class HeadLine {
private Long lineId;
private String lineName;
private String lineLink;
private String lineImg;
private Integer priority;
//0.不可用1.可用
private Integer enableStatus;
private Date createTime;
private Date lastEditTime;
public Long getLineId() {
return lineId;
}
public void setLineId(Long lineId) {
this.lineId = lineId;
}
public String getLineName() {
return lineName;
}
public void setLineName(String lineName) {
this.lineName = lineName;
}
public String getLineLink() {
return lineLink;
}
public void setLineLink(String lineLink) {
this.lineLink = lineLink;
}
public String getLineImg() {
return lineImg;
}
public void setLineImg(String lineImg) {
this.lineImg = lineImg;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Integer getEnableStatus() {
return enableStatus;
}
public void setEnableStatus(Integer enableStatus) {
this.enableStatus = enableStatus;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getLastEditTime() {
return lastEditTime;
}
public void setLastEditTime(Date lastEditTime) {
this.lastEditTime = lastEditTime;
}
}
對應sql語句
CREATE TABLE `tb_head_line` (
`line_id` int(100) NOT NULL AUTO_INCREMENT ,
`line_name` varchar(100) DEFAULT NULL ,
`line_link` varchar(2000) NOT NULL ,
`line_img` varchar(2000) NOT NULL,
`priority` int(2) DEFAULT NULL,
`enable_status`int(2) NOT NULL DEFAULT '0',
`create_time` datetime DEFAULT NULL,
`last_edit_time` datetime DEFAULT NULL,
primary key(`line_id`)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
店鋪類別
同理,建立ShopCategory.java
詳細代碼如下:
package com.one.entity;
import java.util.Date;
public class ShopCategory {
private Long shopCategoryId;
private String shopcategoryName;
private String shopcategoryDesc;
private String shopCategoryImg;
private Integer priority;
private Date createTime;
private Date lastEditTime;
private ShopCategory parent;
public Long getShopCategoryId() {
return shopCategoryId;
}
public void setShopCategoryId(Long shopCategoryId) {
this.shopCategoryId = shopCategoryId;
}
public String getShopcategoryName() {
return shopcategoryName;
}
public void setShopcategoryName(String shopcategoryName) {
this.shopcategoryName = shopcategoryName;
}
public String getShopcategoryDesc() {
return shopcategoryDesc;
}
public void setShopcategoryDesc(String shopcategoryDesc) {
this.shopcategoryDesc = shopcategoryDesc;
}
public String getShopCategoryImg() {
return shopCategoryImg;
}
public void setShopCategoryImg(String shopCategoryImg) {
this.shopCategoryImg = shopCategoryImg;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getLastEditTime() {
return lastEditTime;
}
public void setLastEditTime(Date lastEditTime) {
this.lastEditTime = lastEditTime;
}
public ShopCategory getParent() {
return parent;
}
public void setParent(ShopCategory parent) {
this.parent = parent;
}
}
對應sql語句
CREATE TABLE `tb_shop_category` (
`shop_category_id` int(11) NOT NULL AUTO_INCREMENT ,
`shop_category_name` varchar(100)NOT NULL DEFAULT '' ,
`shop_category_desc` varchar(1000) DEFAULT '',
`shop_category_img` varchar(2000) DEFAULT NULL,
`priority` int(2) NOT NULL DEFAULT '0',
`create_time` datetime DEFAULT NULL,
`last_edit_time` datetime DEFAULT NULL,
`parent_id`int(11) DEFAULT NULL,
primary key(`shop_category_id`),
constraint `fk_shop_category_self` foreign key(`parent_id`) references `tb_shop_category`(`shop_category_id`)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
店鋪
創建Shop.java
詳細代碼如下:
package com.one.entity;
import java.util.Date;
public class Shop {
private Long shopId;
private String shopName;
private String shopDesc;
private String shopAddr;
private String phone;
private String shopImg;
private Integer priority;
private Date createTime;
private Date lastEditTime;
//-1.不可用 0.審覈中 1.可用
private Integer enableStatus;
//超級管理員給店家的提醒
private String advice;
private Area area;
private PersonInfo owner;
private ShopCategory shopCategory;
public Long getShopId() {
return shopId;
}
public void setShopId(Long shopId) {
this.shopId = shopId;
}
public String getShopName() {
return shopName;
}
public void setShopName(String shopName) {
this.shopName = shopName;
}
public String getShopDesc() {
return shopDesc;
}
public void setShopDesc(String shopDesc) {
this.shopDesc = shopDesc;
}
public String getShopAddr() {
return shopAddr;
}
public void setShopAddr(String shopAddr) {
this.shopAddr = shopAddr;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getShopImg() {
return shopImg;
}
public void setShopImg(String shopImg) {
this.shopImg = shopImg;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getLastEditTime() {
return lastEditTime;
}
public void setLastEditTime(Date lastEditTime) {
this.lastEditTime = lastEditTime;
}
public Integer getEnableStatus() {
return enableStatus;
}
public void setEnableStatus(Integer enableStatus) {
this.enableStatus = enableStatus;
}
public String getAdvice() {
return advice;
}
public void setAdvice(String advice) {
this.advice = advice;
}
public Area getArea() {
return area;
}
public void setArea(Area area) {
this.area = area;
}
public PersonInfo getOwner() {
return owner;
}
public void setOwner(PersonInfo owner) {
this.owner = owner;
}
public ShopCategory getShopCategory() {
return shopCategory;
}
public void setShopCategory(ShopCategory shopCategory) {
this.shopCategory = shopCategory;
}
}
對應SQL語句
CREATE TABLE `tb_shop` (
`shop_id` int(10) NOT NULL AUTO_INCREMENT ,
`owner_id` int(10) NOT NULL COMMENT '店鋪創建人',
`area_id` int(5) DEFAULT NULL ,
`shop_category_id`int(11) DEFAULT NULL ,
`shop_name` varchar(256)NOT NULL ,
`shop_desc` varchar(1024) DEFAULT NULL,
`shop_addr` varchar(200) DEFAULT NULL,
`phone` varchar(128) DEFAULT NULL,
`shop_img` varchar(1024) DEFAULT NULL,
`priority` int(3) DEFAULT '0',
`create_time` datetime DEFAULT NULL,
`last_edit_time` datetime DEFAULT NULL,
`enable_status`int(2) NOT NULL DEFAULT '0',
`advice` varchar(255) DEFAULT NULL,
primary key(`shop_id`),
constraint `fk_shop_area` foreign key(`area_id`) references `tb_area`(`area_id`),
constraint `fk_shop_profile` foreign key(`owner_id`) references `tb_person_info`(`user_id`),
constraint `fk_shop_shopcate` foreign key(`shop_category_id`) references `tb_shop_category`(`shop_category_id`)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
商品類別
創建ProductCategory.java
package com.one.entity;
import java.util.Date;
public class ProductCategory {
// 主鍵ID
private Long productCategoryId;
// 該類別是屬於哪個店鋪的
private Long shopId;
// 類別名
private String productCategoryName;
// 權重,越大越排前顯示
private Integer priority;
// 創建時間
private Date createTime;
public Long getProductCategoryId() {
return productCategoryId;
}
public void setProductCategoryId(Long productCategoryId) {
this.productCategoryId = productCategoryId;
}
public Long getShopId() {
return shopId;
}
public void setShopId(Long shopId) {
this.shopId = shopId;
}
public String getProductCategoryName() {
return productCategoryName;
}
public void setProductCategoryName(String productCategoryName) {
this.productCategoryName = productCategoryName;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
對應sql語句
CREATE TABLE `tb_product_category` (
`product_category_id` int(11) NOT NULL AUTO_INCREMENT,
`product_category_name` varchar(100) NOT NULL,
`priority` int(2) DEFAULT '0',
`create_time` datetime DEFAULT NULL,
`shop_id` int(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`product_category_id`),
KEY `fk_procate_shop` (`shop_id`),
CONSTRAINT `fk_procate_shop` FOREIGN KEY (`shop_id`) REFERENCES `tb_shop` (`shop_id`)
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;
商品
創建Product.java
package com.one.entity;
import java.util.Date;
import java.util.List;
public class Product {
// 主鍵ID
private Long productId;
// 商品名
private String productName;
// 商品簡介
private String productDesc;
// 簡略圖
private String imgAddr;
// 原價
private String normalPrice;
// 現價(推廣價格)
private String promotionPrice;
// 權重,越大越排前顯示
private Integer priority;
// 商品積分
private Integer point;
// 創建時間
private Date createTime;
// 最近一次的更新時間
private Date lastEditTime;
// 0.下架 1.在前端展示系統展示
private Integer enableStatus;
// 圖片詳情圖列表,跟商品是多對一的關係
private List<ProductImg> productImgList;
// 商品類別,一件商品僅屬於一個商品類別
private ProductCategory productCategory;
// 店鋪實體類,標明商品屬於哪個店鋪
private Shop shop;
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getProductDesc() {
return productDesc;
}
public void setProductDesc(String productDesc) {
this.productDesc = productDesc;
}
public String getImgAddr() {
return imgAddr;
}
public void setImgAddr(String imgAddr) {
this.imgAddr = imgAddr;
}
public String getNormalPrice() {
return normalPrice;
}
public void setNormalPrice(String normalPrice) {
this.normalPrice = normalPrice;
}
public String getPromotionPrice() {
return promotionPrice;
}
public void setPromotionPrice(String promotionPrice) {
this.promotionPrice = promotionPrice;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getLastEditTime() {
return lastEditTime;
}
public void setLastEditTime(Date lastEditTime) {
this.lastEditTime = lastEditTime;
}
public Integer getEnableStatus() {
return enableStatus;
}
public void setEnableStatus(Integer enableStatus) {
this.enableStatus = enableStatus;
}
public Integer getPoint() {
return point;
}
public void setPoint(Integer point) {
this.point = point;
}
public List<ProductImg> getProductImgList() {
return productImgList;
}
public void setProductImgList(List<ProductImg> productImgList) {
this.productImgList = productImgList;
}
public ProductCategory getProductCategory() {
return productCategory;
}
public void setProductCategory(ProductCategory productCategory) {
this.productCategory = productCategory;
}
public Shop getShop() {
return shop;
}
public void setShop(Shop shop) {
this.shop = shop;
}
}
對應的sql語句
CREATE TABLE `tb_product` (
`product_id` int(100) NOT NULL AUTO_INCREMENT,
`product_name` varchar(100) NOT NULL,
`product_desc` varchar(2000) DEFAULT NULL,
`img_addr` varchar(2000) DEFAULT '',
`normal_price` varchar(100) DEFAULT NULL,
`promotion_price` varchar(100) DEFAULT NULL,
`priority` int(2) NOT NULL DEFAULT '0',
`create_time` datetime DEFAULT NULL,
`last_edit_time` datetime DEFAULT NULL,
`enable_status` int(2) NOT NULL DEFAULT '0',
`product_category_id` int(11) DEFAULT NULL,
`shop_id` int(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`product_id`),
CONSTRAINT `fk_product_procate` FOREIGN KEY (`product_category_id`) REFERENCES `tb_product_category` (`product_category_id`),
CONSTRAINT `fk_product_shop` FOREIGN KEY (`shop_id`) REFERENCES `tb_shop` (`shop_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
詳情圖片
創建ProductImg.java
package com.one.entity;
import java.util.Date;
public class ProductImg {
// 主鍵ID
private Long productImgId;
// 圖片地址
private String imgAddr;
// 圖片簡介
private String imgDesc;
// 權重,越大越排前顯示
private Integer priority;
// 創建時間
private Date createTime;
// 標明是屬於哪個商品的圖片
private Long productId;
public Long getProductImgId() {
return productImgId;
}
public void setProductImgId(Long productImgId) {
this.productImgId = productImgId;
}
public String getImgAddr() {
return imgAddr;
}
public void setImgAddr(String imgAddr) {
this.imgAddr = imgAddr;
}
public String getImgDesc() {
return imgDesc;
}
public void setImgDesc(String imgDesc) {
this.imgDesc = imgDesc;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
}
對應的SQL語句
CREATE TABLE `tb_product_img` (
`product_img_id` int(20) NOT NULL AUTO_INCREMENT,
`img_addr` varchar(2000) NOT NULL,
`img_desc` varchar(2000) DEFAULT NULL,
`priority` int(2) DEFAULT '0',
`create_time` datetime DEFAULT NULL,
`product_id` int(20) DEFAULT NULL,
PRIMARY KEY (`product_img_id`),
CONSTRAINT `fk_proimg_product` FOREIGN KEY (`product_id`) REFERENCES `tb_product` (`product_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;