bookShop项目
一、需求分析
- 对于一个项目,最最重要的是需求分析,软件设计师教程中也用了三个章节来介绍项目的设计与分析,这个需要经手不同项目而逐渐积累经验。
- 对于该项目,只是属于学习web阶段的最后一个项目,还未能达到真正工程项目从无到有的项目开发的实战性,但是可以在实现各个功能版块的过程中,通过分析各个功能版块的业务逻辑,来逐渐体会需求分析。
二、数据库设计
-
数据库是给定好的,通过数据库中的数据表可进行一些分析
-
实体及属性分析
实体 名称 属性 图书 Book 书名、作者、价格、销量、库存、封面、状态 用户 User 用户名、密码、邮箱 订单 Order 订单号、日期、金额、数量、用户、订单状态 订单详情 OrderItem 图书、数量、订单号 购物车项 CartItem 图书、数量、用户
三、E-R图
1.
四、在IDEA中新建一个项目
-
导入所需要的jar包
-
导入前端文件
-
配置web.xml文件
<!-- 前置路径值是基于根路径为“/web”而写的,后面要装载的所有html文件都应该在该路径下 --> <param-name>view-prefix</param-name> <param-value>/WEB-INF/pages/</param-value>
五、pojo设计
- 为数据库中的每个表创建一个对应的pojo类
- 在pojo类的属性中,会有自建类的引用类型,为了避免在BaseDAO解析的过程中报空指针异常,故建议每个类都有一个带id的构造器
- 属性名一定要和对应的字段名的名称完全一样
六、首页面
-
在tomcat中设置URL,通过pageController装在首页面对应的html文件
-
在首页面对应的html文件上进行thymeleaf渲染
<!--在html头上添加引用--> <html lang="en" xmlns:th="http://www.thymeleaf.org">
-
在跳转的位置做好传参配置
<!-- 请求表单 --> <form th:action="@{/xxx.do}" method="post"> <input name="xxx" value="xxx"/> </form> <!-- 普通跳转 --> <a th:href="@{/xxx.do?operate=xxx&id=xxx}"
七、对应请求,完成相应的业务功能
-
controller
提供已有的参数,并创建service层实现业务时所需的参数
-
dao
根据业务所需,提供相应数据表的增删改查操作,一般将其方法头的参数设置为对应的pojo类型即可
-
service
实现主要的业务逻辑,并创建DAO执行所需的参数的实体,故代码的设计要围绕业务逻辑和为DAO传参而展开。
八、配置applicationContext.xml内的参数
九、controller中类的方法
- 这些方法都是从html/js页面或其它controller的方法跳转过来的,并且最终也会跳转到html页面或其它controller上。
- 在方法内要将需要传递出去的参数保存在作用域中