实训项目

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
dataSource.getConnection();
第一次集中编码:D任务
任务说明
完成商品展示
第一次集中编码:E任务
任务说明
完成首页中商品分类
第一次集中编码:F任务
任务说明
查看新闻显示
第一次集中编码
关键代码与提示
完成首页中商品分类
• 编写用于处理分类的CategoryServlet • 编写业务逻辑层CategoryBiz接口及其实现类 • 编写数据访问层CategoryDao接口及其实现类 public List<ProductCategory> getProductCategories(Long parentId) • 编写查询商品分类的方法, 注意分类商品是否包含子分 throws SQLException { 类 List<ProductCategory> rtn = new ArrayList<ProductCategory>();
针对留言的回复
发表的留言内容 创建时间 回复时间 留言用户昵称
varchar(200)
varchar(200) datetime datetime varchar(10)
问题分析1:数据库设计7-4
商品表(easybuy_product):存放商品基本信息
字段名称
ep_id ep_name ep_description ep_price ep_stock
任务描述
前台功能
首页页面 用户注册 用户登录 新闻动态 分类商品信息展示 商品详情页面 购物车 留言簿
演示各项功能效果
任务描述
后台功能
用户信息管理 商品信息管理
• 商品的管理 • 商品分类的管理
订单管理 留言簿管理 新闻管理
演示各项功能效果
}
第三次集中编码:D任务
任务说明
实现购物车功能
第三次集中编码:E任务
任务说明
按照分类显示商品信息
第三次集中编码:F任务
任务说明
• 后台新闻管理中的新增新闻功能
第三次集中编码
class CartServlet extends HttpServlet { public 关键代码与提示 protected void doPost() { … 购物车功能
int(10)
int(10) varchar(200)
非空
非空
问题分析1:数据库设计7-5
商品分类表(easybuy_product_category):存 放商品的分类基本信息
字段名称
epc_id epc_name epc_parent_id

编号 名字


int(10)

非空 非空


主键,自动编号
问题分析1:数据库设计7-1
用户表(easybuy_user):存放用户基本信息
字段名称
eu_user_id
eu_user_name eu_password eu_sex eu_birthday eu_identity_code eu_email eu_mobile eu_address eu_status
String sql = "select * from easybuy_product_category "; if (parentId != null) sql = sql + " where epc_parent_id = " + parentId; sql = sql + " order by epc_parent_id,epc_id"; //获取数据库连接 //设置SQL语句参数 //执行数据库查询操作 //释放资源 return rtn; }
主键,自动编号
问题分析2:界面交互设计
确认每个用例的页面列表及页面元素
参考演示案例页面 在演示案例界面基础上进行优化
设计原则
操作方便 开发简单 易于维护
问题分析3:技术框架设计
三层结构技术
表示层
• • • • 使用JSP实现页面显示 使用Servlet进行流程控制 使用JavaScript进行页面交互 使用Ajax增强用户体验
业务逻辑层
• 使用JavaBean实现业务封装
数据访问层
• 使用数据源+JDBC访问数据库 • 使用DAO模式
使用实体类在各层传递数据
使用MySQL存储数据
难点分析1:理解业务
如何实现购物车? 如何实现页面整合? 如何进行权限控制? 如何实现分页显示?
难点分析2:使用三层结构开发
varchar(20) int(10)
父分类
问题分析1:数据库设计7-6
订单表(easybuy_order):存放订单相关信息
字段名称
eo_id
eo_user_id eo_user_name

编号


int(10)

非空 非空


主键,自动编号
用户ID 用户名
int(10,0) varchar(20)
非空,不能重复
非空 非空,系统时间
问题分析1:数据库设计7-3
留言表(easybuy_comment):存放用户留言
字段名称
ec_id 编号



int(10)



主键,自动编号 非空 非空 非空
ec_reply
ec_content ec_create_time ec_reply_time ec_nick_name
实现前台首页商品展示功能 实现商品详情展示功能 实现近期商品浏览
第三次集中编码:C任务
任务说明
实现留言的发布功能
第三次集中编码
关键代码与提示
用户注册和登录功能
• 编写用于处理用户的Servlet • 编写业务逻辑层UserBiz接口及其实现类 • 编写数据访问层UserDao接口及其实现类 • 编写保存用户信息的方法 • 用户注册页面中,用户名、真实姓名、密码、性别为必 //编写保存用户信息的 DAO方法 填项,使用 对用户名进行验证 public void save(UserAjax user) throws SQLException { String sql = " insert into easybuy_user(eu_user_id, eu_user_name, " • 编写查询方法,根据用户名和密码实现登录用户查询
非空,0为女,1为男
非空
非空 1普通用户 2管理员
问题分析1:数据库设计7-2
新闻表(easybuy_news):存放新闻信息
字段名称
en_id

编号


int(10)


主键,自动编号

en_title
en_content en_create_time
标题
内容 录入日期
varchar(40)
varchar(1000) datetime
参考代码或结果演示
使用数据源访问数据库
• • • • 在Tomcat中配置context.xml文件 配置web.xml文件 使用JNDI查找数据源 <Resource auth="Container" 从数据源中获取连接
driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="50" maxIdle="10" maxWait="10000" <resource-ref> try { name="jdbc/easybuy" <description>news DataSource</description > ctx = new InitialContext(); password="sys" <res-ref-name>jdbc/easybuy</res-ref-name> dataSource = type="javax.sql.DataSource" <res-type>javax.sql.DataSource</res-type> (DataSource) ctx.lookup("java:comp/env/jdbc/easybuy"); url="jdbc:oracle:thin:@10.0.0.75:1521:ORCL" <res-auth>Container</res-auth> } catch (NamingException e) { username="system" </resource-ref> e.printStackTrace(); /> }
牢记步骤口诀
搭建项目框架 基于分层开发
熟能生巧 善于总结并分享常见错误
要求在项目开发过程中记录遇到的问题并分享
阶段划分
第一次:
阶段项目指导-软件文档 需求讲解、需求分析
第二次:集中编码 第三次:集中编码 第四次:集中编码 第五次:集中编码 第六次:软件生命周期-测试 第七次:集中编码 第八次:作业提交
+ "eu_password,eu_sex, eu_birthday,eu_identity_code,eu_email, + " eu_mobile," eu_address,eu_status) values(?,?,?,?,?,?,?,?,?,?)"; //获取数据库连接 //设置SQL语句参数 //执行数据库查询操作 //释放资源
说 明
商品编号 商品名字 商品描述 商品价格 商品库存

int(10)

非空 非空 非空


主键,自动编号
varchar(20) varchar(100) decimal(10,2) int(10)
epc_id
epc_child_id ep_file_name
所属分类ID
所属二级分类ID 上传的文件名
第二次集中编码:A任务
任务说明(使用Jquery实现)
“我的易买”下拉菜单的自动显示与隐藏(登录后不 再显示登录、注册,而是显示“我的易买”菜单) 打开首页时弹出固定大小的广告页面窗口 随滚动条上下移动的广告图片
第二次集中编码:B任务
任务说明(使用Jquery实现)
对选购的商品实现删除和修改数量 自动计算金额
eo_user_address
eo_create_time eo_cost
用户地址
创建时间 金额
varchar(200)
datetime decimal(10,2)
非空
非空 非空
非空 1下单 2审核通过 3 配货 4送货中 5收货并确认
eo_status
eo_type
状态
付款方式
int(2)
int(2)

用户名



非空 非空

非空,主键

varchar(10)
varchar(20) varchar(20) bit date varchar(60) varchar(80) varchar(11) varchar(200) int(2)
真实姓名 密码 性别 出生日期 身份证号 email 手机 地址 类型
实训项目
夏汛 pluto_xun@qq.com
训练的技能点
数据库设计 面向对象程序设计 分层开发技术 使用JSP实现页面显示 使用Servlet进行流程控制 使用JavaBean实现业务封装 使用数据源+JDBC访问数据库 使用Oracle存储数据 使用JavaScript进行页面交互 使用Ajax增强用户体验
非空 1 货到付款 2 网 上支付
问题分析1:数据库设计7-7
订单详情表(easybuy_order_detail):存放订单 详细信息
字段名称
eod_id eo_id ep_id eod_quantity eod_cost
说 明
编号 订单ID 商品ID 数量 金额
Leabharlann Baidu


非空 非空 非空 非空


int(10,0) int(10,0) int(10,0) int(10,0) decimal(10,2)
第二次集中编码:C任务
任务说明
对用户的输入进行验证并提示(前端JQuery验证,登 录和注册页)
第二次集中编码:D任务
任务说明
实现登录界面和注册界面的注册码(使用kaptcha组件 )
第三次集中编码:A任务
任务说明
实现用户登录,注册功能
第三次集中编码:B任务
任务说明
第一次集中编码:A任务
任务说明
搭建项目框架 向教师提交本组各组员的分工、项目进度计划
第一次集中编码:B任务
任务说明
编写数据表,每个表至少添加三条记录 创建对数据表对应的实体类 为top.jsp添加连接
第一次集中编码:C任务
任务说明
新闻动态列表显示
第一次集中编码
相关文档
最新文档