版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.南阳理工学院Java 企业级开发学院 (系) :软件学院专业:移动1班完成日期2018年 12 月.专业专注.目录一、项目简介二、项目需求分析三、功能模块分析四、概要设计1. 功能模块图2. 数据库 ER图3. 数据表五、项目实现1. 项目关键代码2. 界面抓图.专业专注.一、项目简介主要是根据需求分析 ,该实验实现了浏览器和浏览器服务器的交互 ,浏览器能够就行网页浏览 ,在浏览器中需要地址栏对指定页面进行访问 ,需要专门的按钮进行跳转 ,在前后浏览页面之间要能够进行跳转 ,并且连接数据库完成增删改查的操作 ,开发这个网站可以正常实现连接 TomCat 网络,能够进行网页浏览 ,并且能够查看
2、页面源代码 。 页面源代码查看 ,前进,后退,主页,停止,刷新等功能 。Tomcat 服务器则实现了 IP 设置,根目录设置 ,统计信息展示等 。在操作不当的情况下有相应的信息提示 ,错误处理机制完备 .系统各个模块之间都有相应错误处理机制 ,功能模块之前划分比较细致 ,有利于发现问题后的及时解决 ,在做好完备的功能模块详细设计之后 ,系统的开发时间会大幅减少。二、项目需求分析该实验设计是基于 Windows 操作系统平台设计并实现的电商网站开发系统 ,其主要目的就是用户能够使用该系统进行商品的增删改查操作 ,以及用户的注册与登陆 ,同时方便系统管理员在网络直接进行各种商品操作 。1.用户登陆
3、与注册管理模块Login + Regist.专业专注.2.网站商品管理模块Goods三、功能模块分析1、DAO 层: 持久层主要与数据库进行交互.专业专注.DAO 层首先会创建 DAO 接口,也就是说 DAO 层里面有一个专门写接口的类 ,然后会在配置文件 (xml 文件,也就是写 SQL 语句的文件,所以说 DAO 层是与数据库进行交互的层 )中定义该接口的实现类,接着就可以在模块中就可以调用 DAO 的接口进行数据业务的而处理,并且不用关注此接口的具体实现类是哪一个类 。DAO 层的数据源和数据库连接的参数都是在配置文件中进行配置的 。2、Entity 层: 实体层 数据库在项目中的类3、
4、Service 层:业务层 控制业务Service 层主要负责业务模块的逻辑应用设计 。和 DAO 层一样都是先设计放接口的类 ,再创建实现的类 ,然后在配置文件中进行配置其实现的关联 。接下来就可以在 service 层调用接口进行业务逻辑应用的处理 。封装 Service 层的业务逻辑有利于业务逻辑的独立性和重复利用性。4、Controller 层: 控制层控制业务逻辑Controller 层负责具体的业务模块流程的控制 ,其实就是与前台互交 ,把前台传进来的参数进行处理 ,controller 层主要调用 Service 层里面的接口控制具体的业务流程 ,控制的配置也需要在配置文件中进行
5、。四、概要设计1.功能模块图.专业专注.户 用电商网站2.数据库 ER 图3.数据表.专业专注.Goods 表Goods_user 表已存储的商品信息表五、项目实现.专业专注.专业专注.Controller层商品实现代码 :.专业专注.Controller层用户实现代码 :.专业专注.Dao 层商品实现代码 :对应的 mapper文件.专业专注.Dao 层商品实现代码 :.专业专注.对应的 mapper文件对应的实体 :Service 层:.专业专注.专业专注.专业专注.专业专注.controller层:Goods:package com.controller;ControllerReques
6、tMapping("/goods")public class GoodsController Autowiredprivate GoodsService goodsService;public GoodsService getGoodsService() return goodsService;public void setGoodsService(GoodsService goodsService) this.goodsService = goodsService;RequestMapping("/selectAll").专业专注.public Str
7、ing selectAll(HttpServletRequest request) throws ExceptionList<Goods> goods = goodsService.selectAll();request.setAttribute("goods", goods);return "forward:/product/productlist.jsp"RequestMapping("/save")public String save(Goods goods)goodsService.save(goods);retu
8、rn "forward:/goods/selectAll.do"RequestMapping("/delete")public String delete(Integer id) throws ExceptiongoodsService.delete(id);return "forward:/goods/selectAll.do"RequestMapping("/selectByID")public String selectByID(Integer id,HttpServletRequest request)Go
9、ods goods = goodsService.selectByID(id);request.setAttribute("goods", goods);return "forward:/product/update.jsp".专业专注.RequestMapping("/updateGoods")public String updateGoods(Goods goods)goodsService.updateGoods(goods);return "forward:/goods/selectAll.do"User:
10、package com.controller;ControllerRequestMapping("/user")public class UserController AutowiredprivateUserServiceuserService;.专业专注.public UserService getUserService() return userService;public void setUserService(UserService userService) this.userService = userService;/ 注册RequestMapping(&quo
11、t;/register")/ 接受数据publicStringregister(Useruser) throwsException/ 调用 Service 中的注册功能userService.register(user);/ 跳转器return "forward:/user/login.html"/ 登录RequestMapping("/login")public String login(String user_name,String password,HttpSession session) throwsException.专业专注.Use
12、r user = userService.login(user_name, password);if(user!=null)session.setAttribute("name", user.getUser_name();String name = (String)session.getAttribute("name");/ 跳转页面return"forward:/goods/selectAll.do"elsereturn"forward:/user/login.html"dao 层Goods:package co
13、m.dao;public interface GoodsDAO / 查询所有商品public List<Goods> selectAll();/ 添加商品.专业专注.public void save(Goods goods);/ 删除商品public void delete(Integer id);/ 通过 ID 查询public Goods selectByID(Integer id);/ 修改商品信息public void updateGoods(Goods goods);对应 mapper文件<? xml version = "1.0" encodi
14、ng = "UTF-8" ?><! DOCTYPE mapperPUBLIC "-//DTD Mapper 3.0/EN""./mybatis-3-mapper.dtd">< mappernamespace = >< select id = "selectAll"resultType = "Goods" >select * from goods order by id</ select >< select id =
15、 "selectByID"resultType = "Goods" >select * from goods where id=#id</ select >< insertid = "save">< selectKeykeyProperty= "id" resultType = "int"order = "BEFORE" >select a.nextval from dual.专业专注.</ selectKey >inse
16、rt into goods(id,name,price,description)values(#id,#name,#price,#description)</ insert >< deleteid = "delete" >delete from goods where id=#id</ delete >< updateid = "updateGoods">update goods< set >< if test = "name!=null" >name=#name
17、,</ if >< if test = "price!=null" > price=#price,</ if >< if test = "description" > description=#description</ if >where id =#id</ set ></ update >.专业专注.</ mapper >User:package com.dao;public interface UserDAO / 插入一条数据publicvoidsave
18、(Useruser);/ 通过 user_name 和 password查询publicUserselectByUsernameAndPassword(Param("u")Stringuser_name,Param("p")String password);对应 mapper文件<? xml version = "1.0" encoding = "UTF-8" ?><! DOCTYPE mapperPUBLIC "-//DTD Mapper 3.0/EN"
19、"./mybatis-3-mapper.dtd">< mappernamespace = >< insertid = "save">insertintogoods_user (user_name,name,age,password,sex)values(#user_name,#name,#age,#password,#sex)</ insert >.专业专注.< select id = "selectByUsernameAndPassword" resultType = "Us
20、er" >select*from goods_userwhereuser_name=#uand password=#p</ select ></ mapper >Entity层:goods:package com.entity;publicclass Goods privateIntegerid ;privateStringname ;privatedoubleprice ;privateStringdescription ;publicInteger getId() returnid ;publicvoidsetId(Integer id) this
21、.id = id;publicString getName() returnname ;.专业专注.publicvoidsetName(String name) this .name = name;publicdoublegetPrice() returnprice ;publicvoidsetPrice( doubleprice) this .price = price;publicString getDescription() returndescription;publicvoidsetDescription(String description) this .description=
22、description;publicGoods(Integer id, String name,doubleprice, String description) this .id = id;this .name = name;this .price = price;this .description= description;.专业专注.publicGoods() super ();/ TODO Auto-generated constructor stubOverridepublicString toString() return"Goods id="+ id + &qu
23、ot;, name="+ name + ", price="+ price+ ", description="+ description+ "" ;User:package com.entity;public class User privateStringuser_name ;privateStringname ;privateintage ;privateStringpassword ;privateStringsex;publicString getUser_name() returnuser_name ;.专业专注.
24、publicvoidsetUser_name(String user_name) this .user_name= user_name;publicString getName() returnname ;publicvoidsetName(String name) this .name = name;publicint getAge() returnage ;publicvoidsetAge( int age) this .age = age;publicString getPassword() returnpassword ;publicvoidsetPassword(String pas
25、sword) this .password= password;publicString getSex() .专业专注.returnsex;publicvoidsetSex(String sex) this .sex = sex;publicUser(String user_name, String name,int age, String password,String sex) this .user_name= user_name;this .name = name;this .age = age;this .password= password;this .sex = sex;publi
26、cUser() super ();/ TODO Auto-generated constructor stubOverridepublicString toString() return"User user_name="+ user_name + ", name="+ name + ", age="+ age + ", password="+ password+ ", sex="+ sex + "" ;.专业专注.service 层Goods:package com.serv
27、ice;public interface GoodsService / 查询所有商品public List<Goods> selectAll();/ 增加商品public void save(Goods goods);/ 删除商品public void delete(Integer id);/ 通过 ID 查询public Goods selectByID(Integer id);/ 修改public void updateGoods(Goods goods);.专业专注.对应服务层接口:package com.service;ServiceTransactionalpublic
28、class GoodsServiceImpl implements GoodsServiceAutowiredprivate GoodsDAO goodsDAO;public GoodsDAO getGoodsDAO() return goodsDAO;public void setGoodsDAO(GoodsDAO goodsDAO) this.goodsDAO = goodsDAO;Override/ 提高查询效率.专业专注.Transactional(propagation=Propagation.SUPPORTS,readOnly=true)public List<Goods&g
29、t; selectAll() List<Goods> goods = goodsDAO.selectAll();return goods;Overridepublic void save(Goods goods) goodsDAO.save(goods);Overridepublic void delete(Integer id) goodsDAO.delete(id);Overridepublic Goods selectByID(Integer id) Goods goods = goodsDAO.selectByID(id);return goods;Overridepublic void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年洛阳石化人员招聘考试模拟试题及详细答案解析
- 2026年中国电信西藏分公司人员招聘考试参考试题及详细答案解析
- 2026年黑龙江中盟集团有限公司人员招聘笔试参考试题及详细答案解析
- 2026年中国移动新疆分公司人员招聘笔试参考题库及详细答案解析
- 2026年中国石油云南销售分公司人员招聘笔试备考试题及详细答案解析
- 2026年国联信托人员招聘笔试备考题库及详细答案解析
- 2026年中国烟草总公司四川省公司人员招聘考试参考试题及详细答案解析
- 2026年玉树市烟草专卖局人员招聘笔试备考题库及详细答案解析
- 2026年青海移动人员招聘考试备考试题及详细答案解析
- 2026年中国盐业集团有限公司人员招聘考试题库及详细答案解析
- 移植物抗宿主病课件
- 医药行业销售团队管理方案
- 测绘地理信息安全保密管理制度
- 工地试验室安全培训会议课件
- 2025人教版高一化学全册知识点归纳总结(复习资料)
- 电风扇清洗安装课件
- 核反应堆核级机械设备检修工职业技能鉴定经典试题含答案
- 智慧健康养老智能产品应用
- 口腔科诊疗中晕厥的预防与处置
- JJF1033-2023计量标准考核规范
- 《健康体适能》课件
评论
0/150
提交评论