基于javaWeb实现的购物商城设计
1.项目简介
1.1总体结构
src文件
model:定义的是商品类Goodselement和用户类Member tools:定义CheckCode验证码处理的servlet,Chstr字符转换处理,connDB连接数据库 dao:实现数据库用户表的查询和插入操作
数据库文件 两个sql server的数据库文件,直接用sql server manager的导入可以添加数据库
前端页面
login:登录界面 register:注册界面 cart:购物车界面 common:网页上下栏目 goodsDetail:商品详情 leftHotGoods:左边栏显示热门商品 relateGoods:下边栏显示相关商品 agreement.html:网站注册协议
index:主页面
1.2主页面
最新商品显示 打折商品显示 热门商品显示 详细实现见:http://blog.csdn.net/u013948010/article/details/78675164
1.3商品详情页面
详细实现见:http://blog.csdn.net/u013948010/article/details/78694181
1.4购物车
1.5登录和注册
登录
注册
2.数据库连接
数据库采用的是sql server数据库,连接数据库用到的方法写进一个类connDB当中(类放在com.tools当中),每次需要访问数据库时,实例化这个类,并调用它封装的方法。数据库是已经在sql server创建好的db_shop 成员变量:
java
public Connection conn = null; // 数据库连接对象
public Statement stmt = null; // statement对象,用于执行Sql语句
public ResultSet rs = null; // 结果对象集
// 驱动类的类名
private static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static String dbUrl = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=db_shop";
private static String dbUser = "sa"; // 登录sql的用户名
private static String dbPwd = "****"; // 登录sql的密码
2.1创建连接
java
/*
* 创建与数据库的连接
*/
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(dbClassName).newInstance(); // 装在数据库驱动
// 获取数据库连接对象
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
} catch (Exception e) {
e.printStackTrace();
}
if (conn == null) {
System.err.println("DbConnectionManger.getConnection():" + dbClassName + "\r\n" + dbUrl + "\r\n" + dbUser
+ "/" + dbPwd);
} else {
System.out.println("数据库连接成功");
}
return conn;
}
2.2更新数据
java
/*
* 更新数据功能
*/
public int executeUpdate(String sql) {
int result = 0; // 更新数据的记录条数
try {
conn = getConnection(); // 获取数据库连接
// 创建用于执行SQL语句的statement对象
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
result = stmt.executeUpdate(sql);
} catch (SQLException e) {
// TODO: handle exception
result = 0;
e.printStackTrace(); // 输出异常信息
}
try {
stmt.close();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
return result;
}
2.3查询数据
java
/*
* 根据指定的sql语句查询数据
*/
public ResultSet executeQuery(String sql) {
try {
conn = getConnection(); // 获取数据库连接
// 创建用于执行SQL语句的statement对象
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql); // 执行SQL语句
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
return rs;
}
2.4关闭数据库连接
java
/*
* 关闭数据库
*/
public void close() {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace(System.err);
}
}
2.5测试一下
写好之后,需要将sql server的jdbc连接jar包导入,这里用到 sqljdbc42.jar ,然后写一个junit测试方法单独试一下
java
@Test
public void test() {
if (getConnection() != null) {
System.out.println("测试连接成功");
}
}
3.商品显示
3.1数据库
后台数据库用到了sql server,建立了商品表tb_goods和商品分类表tb_subType 商品分类表: 商品表:
3.2获得最新商品
java
/* 最新上架商品信息 */
ResultSet rs_new = conn.executeQuery(
"select top 12 t1.ID, t1.GoodsName,t1.price,t1.picture,t2.TypeName "
+"from tb_goods t1,tb_subType t2 where t1.typeID=t2.ID and "
+"t1.newGoods=1 order by t1.INTime desc"); //查询最新上架商品信息
int new_ID=0; //保存最新上架商品的id变量
String new_goodsname=""; //保存最新上架商品名称的变量
float new_nowprice=0; //保存最新上架商品的价格变量
String new_picture=""; //保存最新上架商品的图片变量
String typeName=""; //保存最新上架商品的分类变量
前端页面循环显示
```html
<% while(rs_new.next()){ new_ID=rs_new.getInt(1); //最新上架商品的id new_goodsname=rs_new.getString(2); //最新上架商品的名称 new_nowprice=rs_new.getFloat(3); //最新上架商品当前价格 new_picture=rs_new.getString(4); //最新上架商品的图片 typeName=rs_new.getString(5); //最新上架商品的类别
%> <%}%> ```
3.2获得打折商品
```java ResultSet rs_sale = conn.executeQuery( "select top 12 t1.ID, t1.GoodsName,t1.price,t1.nowPrice,t1.picture,t2.TypeName " +"from tb_goods t1,tb_subType t2 where t1.typeID=t2.ID and t1.sale=1 " +"order by t1.INTime desc"); //查询打折商品信息
int sale_ID=0; //保存打折商品的id变量
String s_goodsname=""; //保存打折商品名称的变量
float s_nowprice=0; //保存打折商品现在的价格变量
float s_price=0; //保存打折商品的原价格变量
String s_picture=""; //保存打折商品的图片变量
String s_introduce=""; //保存打折商品简介
```
前端显示
```java
<% while(rs_sale.next()){ sale_ID=rs_sale.getInt(1); //打折商品的id s_goodsname=rs_sale.getString(2); //打折商品的名称 s_price=rs_sale.getFloat(3); //打折商品原价格 s_nowprice=rs_sale.getFloat(4); //打折商品当前价格 s_picture=rs_sale.getString(5); //打折商品的图片 typeName=rs_sale.getString(6); //最新上架商品的类别 %> <%}%> ```
3.3获得两条热门商品
查询数据库并得到结果
java
ResultSet rs_hot =conn
.executeQuery("select top 2 ID,GoodsName,nowprice,picture "
+"from tb_goods order by hit desc"); //查询热门商品信息
int hot_ID = 0; //保存热门商品ID的变量
String hot_goodsName = ""; //保存热门商品名称的变量
float hot_nowprice = 0; //保存热门商品价格的变量
String hot_picture = ""; //保存热门商品图片的变量
前端显示:
```html
<% while(rs_hot.next()){ hot_ID=rs_hot.getInt(1); //获取热门商品id hot_goodsName=rs_hot.getString(2); //获取热门商品名 hot_nowprice=rs_hot.getFloat(3); //热门商品当前价格 hot_picture=rs_hot.getString(4); //热门商品图片 %> <%}%> ```
4.商品详情:
html
<a href="goodsDetail.jsp?ID=<%=hot_ID%>">1
商品详情数据库表tb_goods:
建立goodsDetail.jsp页面
4.1访问数据库获取商品
根据页面跳转传递的商品ID访问数据库获得商品详情。
```java
<% int typeSystem=0; int ID=Integer.parseInt(request.getParameter("ID")); //获取商品ID if(ID>0){ ResultSet rs=conn.executeQuery("select ID,GoodsName,Introduce,nowprice,picture," + " price,typeID from tb_goods where ID=" + ID); //根据ID查询商品信息 String goodsName = ""; //保存商品名称的变量 float nowprice = (float) 0.0; //保存商品现价的变量 float price = (float) 0.0; //保存商品原价的变量 String picture = ""; //保存商品图片的变量 String introduce = ""; //保存商品描述的变量 if(rs.next()){ goodsName=rs.getString(2); introduce=rs.getString(3); nowprice=rs.getFloat(4); picture=rs.getString(5); price=rs.getFloat(6); typeSystem=rs.getInt(7); } conn.close(); %>
<!-- 显示商品详情html代码 -->
<%}else{//获取到的ID不合法 out.println(" "); } %>
```
4.2相关商品显示
商品详情页面,同时显示同一商品类别的6个同类商品。相关商品显示页面调用relatedGoods.jsp,typeSystem由上文得到为商品类别,根据类别查询数据库。
```java
```
4.3related.jsp设计
获取类别,初始化变量
jsp
<%
int typeSystem = Integer.parseInt(request.getParameter("typeSystem"));
int hot_ID = 0;
String hot_goodsName = "";
float hot_nowprice = 0;
String hot_picture = "";
%>
4.4查询数据库
```jsp <% ResultSet rs_relate = conn.executeQuery( "select top 6 ID,GoodsName,nowprice,picture from tb_goods where typeID=" + typeSystem + " "); int relate_ID = 0; String relate_goodsName = ""; float relate_nowprice = 0; String relate_picture = "";
int s3 = 0;
while (rs_relate.next()) {
relate_ID = rs_relate.getInt(1);
relate_goodsName = rs_relate.getString(2);
relate_nowprice = rs_relate.getFloat(3);
relate_picture = rs_relate.getString(4);
%> ```
详情页面:
其中左边是热门商品,下面是相关商品
4.5热门商品显示
商品详情页面,同时显示同一商品类别的7个高点击率的人商品。热门商品显示页面调用leftHotGoods.jsp,typeSystem由上文得到为商品类别,根据类别查询数据库,并根据点击量返回商品排序。
```jsp
```
4.6leftHotGoods.jsp设计
访问数据库获取热门商品
ABAP
<%
int hot_ID = 0;
String hot_goodsName = "";
float hot_nowprice = 0;
String hot_picture = "";
String sql="";
if(request.getParameter("type")!=null && request.getParameter("type")!=""){
int type=Integer.parseInt(request.getParameter("type"));
sql="select top 7 t1.ID,t1.GoodsName,t1.nowprice,t1.picture from tb_goods t1,tb_subType t2 where t1.typeID=t2.ID and t2.superType="
+ type + " order by t1.hit desc,t1.ID asc";
}else if(request.getParameter("typeSystem")!=null && request.getParameter("typeSystem")!=""){
int typeSystem = Integer.parseInt(request.getParameter("typeSystem"));
sql="select top 7 ID,GoodsName,nowprice,picture from tb_goods where typeID=" + typeSystem
+ " order by hit desc,ID asc";
}else{
sql="select top 7 ID,GoodsName,nowprice,picture from tb_goods order by hit desc";
}
%>
执行查询并显示
```java
```
参考文献
- 基于eGo商城系统的设计与实现(电子科技大学·冯川洋)
- 电子商务平台—购物网站的设计与实现(山东大学·彭向峰)
- 基于JSP网上购物系统的实现与应用(南昌大学·曾磊)
- 基于推荐子系统的电子商城设计与实现(电子科技大学·栾培远)
- 基于SSM框架的B2C网上商城系统的设计与实现(湖南大学·陈峰)
- 基于J2EE的在线购物网站设计与实现(江西农业大学·夏超)
- 基于SSM框架的B2C网上商城系统的设计与实现(湖南大学·陈峰)
- 基于JSP的网络购物系统分析设计与实现(电子科技大学·杨青)
- 网上购物模拟系统(吉林大学·郭秋野)
- 基于J2EE的在线购物网站设计与实现(江西农业大学·夏超)
- 基于J2EE的网络购物中心设计和实现(电子科技大学·张晓军)
- 网上商城系统的设计(云南大学·张昆)
- 基于JSP技术的网上购物系统设计与实现(电子科技大学·包敏)
- 积分商城的设计与实现(北京邮电大学·王威)
- 基于SSM框架的B2C网上商城系统的设计与实现(湖南大学·陈峰)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码工坊 ,原文地址:https://m.bishedaima.com/yuanma/35663.html