myShop网上商城实验

时间:2024.4.27

攀枝花学院实验报告

实验课程:JAVA应用开发      实验项目:网上商城实现           实验日期:2013.5              系:计算机   班级:10计本1班       姓名:蒋志勇        学号:201010801035

指导老师:范胜波                                                                     成绩:

 

一.实验目的

1.学会对购物车,订单,商品信息,商品分类用MVC设计模式的实现。

2.了解Ajax,Json,Jquery的使用。

3.初步认识框架的使用。

二.实验设备

Eclipse,Mysql数据库,Tomact

三.实验内容

1.网上商城的功能

(1)用户的登录与注销。

(2)动态商品分类查询。

(3)商品搜索功能的实现。

(4)首页商品的展示及进行分页显示。

(5)商品详细功能的实现。

(6)购物车的实现及进行总价的计算。

2.数据库设计

(1)用户表:customer

CREATE TABLE `customer` (

  `ID` int(11) NOT NULL AUTO_INCREMENT,

  `LoginName` varchar(50) NOT NULL,

  `Password` varchar(50) NOT NULL,

  `Name` varchar(50) NOT NULL,

  `Gender` char(2) DEFAULT NULL,

  `Birthday` date DEFAULT NULL,

  `Adress` varchar(128) DEFAULT NULL,

  `Email` varchar(64) DEFAULT NULL,

  `Phone` varchar(32) DEFAULT NULL,

  PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

(2)商品分类表:category

CREATE TABLE `category` (

  `ID` int(11) NOT NULL,

  `Name` varchar(30) NOT NULL,

  `ParentID` int(11) DEFAULT NULL,

  `Status` char(6) DEFAULT NULL,

  PRIMARY KEY (`ID`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

(3)商品表:goods

CREATE TABLE `goods` (

  `ID` int(11) NOT NULL AUTO_INCREMENT,

  `Name` varchar(64) NOT NULL,

  `Price` float(8,0) NOT NULL,

  `Inventory` int(11) NOT NULL,

  `Status` char(6) NOT NULL,

  `ImgUrl` varchar(64) DEFAULT NULL,

  `Description` text,

  `CategoryID` int(11) NOT NULL,

  PRIMARY KEY (`ID`),

  KEY `RefCategory1` (`CategoryID`),

  CONSTRAINT `RefCategory1` FOREIGN KEY (`CategoryID`) REFERENCES                            `category` (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8;

(4)订单表:order

CREATE TABLE `order` (

  `ID` int(11) NOT NULL AUTO_INCREMENT,

  `CustomerID` int(11) NOT NULL,

  `GoodsID` int(11) NOT NULL,

  `GoodsCount` int(11) NOT NULL,

  `Price` float(8,0) NOT NULL,

  `Total` float(8,0) DEFAULT NULL,

  `Address` varchar(64) NOT NULL,

  `Contact` varchar(32) NOT NULL,

  `Phone` varchar(30) DEFAULT NULL,

  `Status` varchar(6) DEFAULT NULL,

  `Note` varchar(255) DEFAULT NULL,

  PRIMARY KEY (`ID`),

  KEY `RefCustomers2` (`CustomerID`),

  KEY `RefGoods3` (`GoodsID`),

  CONSTRAINT `RefCustomers2` FOREIGN KEY (`CustomerID`) REFERENCES        `customer` (`ID`),

  CONSTRAINT `RefGoods3` FOREIGN KEY (`GoodsID`) REFERENCES `goods` (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

(5)系统代码表:syscode

CREATE TABLE `syscode` (

  `CODE` char(6) NOT NULL,

  `Name` varchar(50) NOT NULL,

  `CodeType` char(3) NOT NULL,

  PRIMARY KEY (`CODE`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.功能实现过程。

(1)Myshop框架的搭建与myshop数据库的创建。

1)将Myshop解压,然后点击Eclipse的File->Import导入项目。

2)打开Navicat for MySQL新建myshop数据库,选择utf-8编码,然后选择新建查询,          导入shop.sql数据库sql语句运行。

3)点击运行,将Myshop数据库加载到tomact中出现如下结果,则框架搭建成功。

(2)分类导航的实现。

1)新建一个category.jsp页面。

2)编写CategoryServlet.java和CategoryDao实现对分类导航。

代码如下:

public List<Category> getCategoriesByParentId(int parentId){

        String sql="SELECT ID,NAME,ParentID,Status FROM category WHERE ParentID=? and                   Status=?";

        returnthis.list(sql,parentId,MyShopConstant.category_type_active);

    }

(3)登录和注销功能的实现。

   1)新建一个topbar.jsp用于用户登录和显示用户相关信息。

   2)编写CustomerServlet.java和CustomerDao实现用户登录的数据库查询。

代码如下:

public Customer getCustomer(String loginName){

    String getCustomerSQL="SELECT ID,LoginName,Password,Name,Gender,Birthday,Adress,    Email,Phone "+"FROM customer WHERE LoginName=?";

        returnthis.get(getCustomerSQL, loginName);

    }

(4)商品展示,商品详细信息和查询的显示。

1)新建goodsList.jsp和goodsDetail.jsp分别 用于商品的首页显示和商品详细    信息显示。

2)编写GoodsServlet和GoodsDao分别用于商品操作的转发和数据库操作。

 代码如下:

publicclass GoodsDao extends MyShopBasicDAO<Goods> {

     //查询全部商品

     public Page<Goods> getAllGoods(int curpage){

          String countGoodsSQL="SELECT count(*) FROM Goods WHERE Status=?";

          String getAllGoods="SELECT ID,NAME,Price,Inventory,Status,ImgUrl,Description,CategoryID "

                                   +"FROM Goods WHERE Status=? limit ?,?";

          long total=this.getValue(countGoodsSQL, MyShopConstant.goods_status_available);

          Page<Goods> page=new Page<Goods>(total, curpage);

          page.setItems(this.list(getAllGoods, MyShopConstant.goods_status_available,page.startIndex(),page.getPageSize()));

          return page;     

     }

     //分类查询,用于商品分类导航的显示

     public Page<Goods> getGoods(int categoryId,int curpage){

          String countGoodsSQL="SELECT count(*) FROM Goods WHERE Status=? AND CategoryID=?";

          String getAllGoods="SELECT ID,NAME,Price,Inventory,Status,ImgUrl,Description,CategoryID "

                                   +"FROM Goods WHERE Status=? AND  CategoryID=? limit ?,?";

          long total=this.getValue(countGoodsSQL, MyShopConstant.goods_status_available,categoryId);

          Page<Goods> page=new Page<Goods>(total, curpage);

          page.setItems(this.list(getAllGoods, MyShopConstant.goods_status_available,categoryId,page.startIndex(),page.getPageSize()));

          return page;     

     }

     //用于商品名字的模糊搜索

     public Page<Goods> getGoods(String namelike,int curpage){

          String countGoodsSQL="SELECT count(*) FROM Goods WHERE Status=? AND Name like ?";

          String getAllGoods="SELECT ID,NAME,Price,Inventory,Status,ImgUrl,Description,CategoryID "

                                   +"FROM Goods WHERE Status=? AND  Name like ? limit ?,?";

          long total=this.getValue(countGoodsSQL, MyShopConstant.goods_status_available,"%"+namelike+"%");

          Page<Goods> page=new Page<Goods>(total, curpage);

          page.setItems(this.list(getAllGoods, MyShopConstant.goods_status_available,"%"+namelike+"%",page.startIndex(),page.getPageSize()));

          return page;     

     }

     //通过商品ID进行商品的详细显示

     public Goods getGoods(int id){

          String getGoodsSQL="SELECT ID,NAME,Price,Inventory,Status,ImgUrl,Description,CategoryID "

                    +"FROM Goods WHERE ID=?";

          returnthis.get(getGoodsSQL, id);

     }

}

(5)购物车功能的实现。

1)编写cartList.jsp用于进行购物车页面的显示并用javascript计算总价钱。

Javascript代码如下:

function total(){

            var totalMoney=0;

            $('#cartList span[id*="price_"]').each(function(index,priceSpan){

                var priceSpanId=$(this).attr('id');

                var id=priceSpanId.substring(priceSpanId.indexOf("_")+1);

                var countId="count_"+id;

                var price=$(this).text();

                var count=$('#'+countId).val();

                totalMoney+=price*count;

            });

            $('#cartList span[id="total"]').text(totalMoney.toFixed(2));

        }

        $(document).ready(function($) {

            $('#selectAllCKB').on('click',function(){

                var $chkAll=$(this);

            if($chkAll.prop('checked')==true){

        $('input[type="checkbox"][name="itemId"]').prop('checked',"checked");

                }else{

        $('input[type="checkbox"][name="itemId"]').removeProp('checked');

                }

            });

            //计算总价

            total();

            //注册数量变化重新计算总价

            $('#cartList input[type="number"][id*="count_"]').on('change',function(){

                //console.dir(this);

                total();

            });

    //注册修改数量事件

            $('#cartList input[type="number"][id*="count_"]').on('change',function(){

                var countSpanId=$(this).attr('id');

                var itemId=countSpanId.substring(countSpanId.indexOf("_")+1);

                var count=$(this).val();

    $.getJSON('Cart?action=changeCount&itemId='+itemId+'&count='+count,function(rs){

                    console.log(rs);

                });

            });

           

        });

2)编写CarList.jsp调用GoodsDao.java进行对数据库的操作。

四.实验总结

在这次实验中应用所学的Servlet进行了MVC模式网上商城开发,在实验中的最大收获就是学会项目开发的步骤,怎样应用log4j来进行程序错误或异常的调试。另外还在这次开发中学会了一下Json,ajax,Jquery的一些知识。在实验中也发现了很多问题,比如在用户登录和商品分类导航开发时,就不知道为什么,用法登录后商品分类导航就消失了,而注销后有显示出来。

更多相关推荐:
photoshop图像处理实验报告

云南大学软件学院实验报告序号:31实验老师:**实验名称:图像处理课程名称:数字媒体技术实验学号:***姓名:**一.实验名称:图像处理:二.实验目的:◆认识图像处理的原理并初步使用常用的图像处理工具Photo…

photoshop实验报告

景德镇陶瓷学院设计艺术学院实验报告课程名称计算机辅导设计姓名陈泽宇学号20xx10113304专业班级11装潢3班成绩教师魏文卿实验项目名称Photoshop基础知识与基本操作基本功能高级功能高级编辑技巧实验学...

photoshop实验报告

景德镇陶瓷学院设计艺术学院实验报告课程名称photoshop姓名韩璐学号20xx10113421专业班级装潢四班成绩教师魏文卿实验项目名称Photoshop基础知识与基本操作基本功能高级功能高级编辑技巧实验学时...

PhotoShop实验报告

实验报告

photoshop实验报告

实验一中文Photoshop70应用基础1上机内容在制作圆环的过程中主要用到新建命令椭圆选框工具和标尺等2上机目的掌握新建命令和标尺的使用方法学会新建图像和在图像中显示标尺3上机操作1选择文件F新建N命令弹出新...

计算机基础 实验5-图像处理PhotoshopCS4

大学计算机基础实验报告班级学号姓名实验5图像处理PhotoshopCS4一实验目的掌握图像处理软件PhotoshopCS4的基本操作方法二实验要求1掌握PhotoshopCS4中选框移动文字仿制图章等基本工具的...

Photoshop实训报告

20XX-20XX学年第一学期课程名称:Photoshop基础班级:姓名:学号:专业:指导教师:日期:目录1、课程实习名称01页2、课程实习地点01页3、主要设备01页4、课程实习目的01页5、主要实习内容01…

Photoshop图层及蒙板操作实验报告

辽宁工程技术大学上机实验报告教师评语

Photoshop实验教学大纲

艺术设计系艺术设计系实验教学大纲与实验指导书PhotoshopPhotoshop实验教学大纲专业名称艺术设计专业课程类别专业实验实验室名称图形图像实验室实验类别专业必修课大纲主撰人燕宏一实验目标与基本要求课程名...

photoshop实验报告

实验报告教学院课程名称专业班级姓名指导教师计算机学院多媒体应用基础周流洋熊皓年月日实验一图像处理经典实例实验课程名多媒体应用基础专业班级学号姓名实验时间实验地点指导教师熊皓实验二影视处理经典实例实验课程名多媒体...

《photoshop》课程设计任务指导书

PHOTOSHOP课程设计指导书适用班级课程名称平面制作实习课程设计指导教师电子与信息工程系20xx年5月PHOTOSHOP课程设计任务指导书一设计的目的和任务通过设计达到熟悉掌握平面广告策划设计制作的目的了解...

photoshop课程设计报告

安徽机电职业技术学院课程报告课程名称计算机辅助工业设计题目低碳环保专业数控工程系班级工设3102学号姓名成绩指导教师张天成20xx年9月3日至20xx年9月8日1设计目的此次课程设计的目的是通过对文本图像音频和...

photoshop实验报告(14篇)