购物车项目(一)

目录

pojo:实体类

Goods.java:商品的实体类

 User.java:用户的实体类

util:工具包

DBHelper.java:数据库连接帮助类

vo:视图包(给前端使用的)

CarItem:购物车数量&总价

biz:业务逻辑层(Biz接口)

IUserBiz:用户接口

 IGoodsBiz:商品接口

biz.impl:Biz接口的实现类

UserBizImpl:用户接口的实现类

 GoodsBizImpl:商品接口的实现类

dao:数据库访问层(Dao接口)

IUserDao:用户接口

IGoodsDao:商品接口

dao.impl:Dao接口的实现类

UserDaoImpl:用户接口的实现类

 GoodsDaoImpl:商品接口的实现类

webapp:jsp代码

login.jsp:登录界面

 doLogin.jsp:处理登录请求

 index.jsp:主页

 doAddCar.jsp:处理增加购物车请

项目路径截图:

pojo:实体类

Goods.java:商品的实体类

package com.zfy.pojo;

import java.io.Serializable;

public class Shop implements Serializable{

	private Integer s_id;
	private String s_name;
	private Integer s_cost;
	private String s_content;
	private String s_img;

	public Integer getS_id() {
		return s_id;
	}

	public void setS_id(Integer s_id) {
		this.s_id = s_id;
	}

	public String getS_name() {
		return s_name;
	}

	public void setS_name(String s_name) {
		this.s_name = s_name;
	}

	public Integer getS_cost() {
		return s_cost;
	}

	public void setS_cost(Integer s_cost) {
		this.s_cost = s_cost;
	}

	public String getS_content() {
		return s_content;
	}

	public void setS_content(String s_content) {
		this.s_content = s_content;
	}

	public String getS_img() {
		return s_img;
	}

	public void setS_img(String s_img) {
		this.s_img = s_img;
	}

	public Shop() {
		// TODO Auto-generated constructor stub
	}

	public Shop(Integer s_id, String s_name, Integer s_cost, String s_content, String s_img) {
		super();
		this.s_id = s_id;
		this.s_name = s_name;
		this.s_cost = s_cost;
		this.s_content = s_content;
		this.s_img = s_img;
	}

	@Override
	public String toString() {
		return "Shop [s_id=" + s_id + ", s_name=" + s_name + ", s_cost=" + s_cost + ", s_content=" + s_content
				+ ", s_img=" + s_img + "]";
	}

}

 User.java:用户的实体类

package com.zfy.pojo;

import java.io.Serializable;

public class User implements Serializable{
	private Integer userId;
	private String userName;
	private String userPwd;
	
	public Integer getUserId() {
		return userId;
	}
	public void setUserId(Integer userId) {
		this.userId = userId;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPwd() {
		return userPwd;
	}
	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
	public User() {
		
	}
	public User(Integer userId, String userName, String userPwd) {
		super();
		this.userId = userId;
		this.userName = userName;
		this.userPwd = userPwd;
	}
	@Override
	public String toString() {
		return "User [userId=" + userId + ", userName=" + userName + ", userPwd=" + userPwd + "]";
	}
	
}

util:工具包

DBHelper.java:数据库连接帮助类

package com.test.util;
/**
 * 连接数据库的工具包
 * @author 王真教掌门
 *
 */

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import oracle.jdbc.driver.OracleDriver;

public class DBHelper {
	private Connection con;
	private PreparedStatement ps;
	private ResultSet rs;
	//导入驱动(sqlserver,oracle,mysql),一定要执行 build path,且需要导入对应的jar包
	static {
	//OracleDriver
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	//编写连接语句
	private static final String URL="jdbc:oracle:thin:@localhost:1521:orcl";
	/**
	 * 获得连接的方法
	 * @return
	 */
	public static Connection getCon() {
		try {
			return DriverManager.getConnection(URL,"scott","tiger");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
	/**
	 * 关闭资源的方法
	 * @param con
	 * @param ps
	 * @param rs
	 */
	public static void close(Connection con,PreparedStatement ps,ResultSet rs) {
		try {
			if(con!=null&&!con.isClosed()) {
				con.close();
			}
			if(ps!=null) {
				ps.close();
			}
			if(rs!=null) {
				rs.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	//测试是否连接到了数据库
	public static void main(String[] args) {
		System.out.println(DBHelper.getCon());
	}
}

vo:视图包(给前端使用的)

CarItem:购物车数量&总价

package com.zfy.vo;

import com.zfy.pojo.Shop;
import lombok.Data;
/**
 * 连接数据库的工具包
 * @author 王真教掌门
 *
 */

public class CarItem {

	private Integer count;//数量
	private Integer sum;//总价
	private Shop shop;//对应商品
	public Integer getCount() {
		return count;
	}
	public void setCount(Integer count) {
		this.count = count;
	}
	public Integer getSum() {
		return sum;
	}
	public void setSum(Integer sum) {
		this.sum = sum;
	}
	public Shop getShop() {
		return shop;
	}
	public void setShop(Shop shop) {
		this.shop = shop;
	}
	
	@Override
	public String toString() {
		return "CarItem [count=" + count + ", sum=" + sum + ", shop=" + shop + "]";
	}
	public CarItem(Integer count, Integer sum, Shop shop) {
		super();
		this.count = count;
		this.sum = sum;
		this.shop = shop;
	}
	
	public CarItem() {
		// TODO Auto-generated constructor stub
	}
}

biz:业务逻辑层(Biz接口)

IUserBiz:用户接口

package com.zfy.biz;

import com.zfy.pojo.User;

public interface IUserBiz {

	User login(User user);
}

 IGoodsBiz:商品接口

package com.zfy.biz;

import java.util.List;

import com.zfy.pojo.Shop;

public interface IShopBiz {

	List<Shop> getAll();//查询所有
	 Shop getOne(Integer id);//查询一个
}

biz.impl:Biz接口的实现类

UserBizImpl:用户接口的实现类

package com.zfy.biz.impl;

import com.zfy.biz.IUserBiz;
import com.zfy.dao.IUserDao;
import com.zfy.dao.impl.UserDaoImpl;
import com.zfy.pojo.User;

public class UserBizImpl implements IUserBiz{
	private IUserDao uDao=new UserDaoImpl();
	
	public User login(User u) {
	User user= uDao.login(u);
	if(!u.getUserName().equals(user.getUserName())) {
		return null;
	}
	if(!u.getUserPwd().equals(user.getUserPwd())) {
		return null;
	}
	return user;
}
}

 GoodsBizImpl:商品接口的实现类

package com.zfy.biz.impl;

import java.util.ArrayList;
import java.util.List;

import com.zfy.biz.IShopBiz;
import com.zfy.dao.IShopDao;
import com.zfy.dao.impl.ShopDaoImpl;
import com.zfy.pojo.Shop;

public class ShopBizImpl implements IShopBiz{

	private  IShopDao shop=new ShopDaoImpl();
public List<Shop> getAll() {
	List<Shop> list =new ArrayList<Shop>();
	
	list=shop.getAll();
	return list;
	
}
@Override
public Shop getOne(Integer id) {
	System.out.println(shop.getOne(id));
	return shop.getOne(id);
}
}

dao:数据库访问层(Dao接口)

IUserDao:用户接口

package com.zfy.dao;
import com.zfy.pojo.User;
public interface IUserDao {
	User login(User user);
}

IGoodsDao:商品接口

package com.zfy.dao;

import java.util.List;

import com.zfy.pojo.Shop;

public interface IShopDao {

	//所有
	List<Shop> getAll();

    //查询单个
    Shop getOne(Integer id);
}

dao.impl:Dao接口的实现类

UserDaoImpl:用户接口的实现类

package com.zfy.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.zfy.dao.IUserDao;
import com.zfy.pojo.User;
import com.zfy.uiti.DBHelper;
public class UserDaoImpl implements IUserDao{
	
	private Connection con;
	private PreparedStatement ps;
	private ResultSet rs;
	@Override
	public User login(User user) {
		try {
			con=DBHelper.getCon();
			String sql="select * from t_user where user_name=?";
			ps=con.prepareStatement(sql);
			ps.setString(1, user.getUserName());
			rs=ps.executeQuery();
			if(rs.next()) {
				System.out.println(rs.getString(2)+"dao");
				User u=new User();
				u.setUserId(rs.getInt(1));
				u.setUserName(rs.getString(2));
				u.setUserPwd(rs.getString(3));
				return u;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.colse(con, ps, rs);
		}
		return null;
	}
}

 GoodsDaoImpl:商品接口的实现类

package com.zfy.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.zfy.dao.IShopDao;
import com.zfy.pojo.Shop;
import com.zfy.uiti.DBHelper;

public class ShopDaoImpl implements IShopDao{

	private Connection con;
	private PreparedStatement ps;
	private ResultSet rs;
	@Override
	public List<Shop> getAll() {
		List<Shop> list=new ArrayList();
		try {
			con=DBHelper.getCon();
			String sql="select * from shop";
			ps=con.prepareStatement(sql);
			rs=ps.executeQuery();
			while(rs.next()) {
				Shop shop=new Shop(rs.getInt(1),rs.getString(2), rs.getInt(3), rs.getString(4), rs.getString(5));
				list.add(shop);
			}
			return list;
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			
		}
		return null;
	}
	@Override
	public Shop getOne(Integer id) {
		 try {
	            con = DBHelper.getCon();
	            ps = con.prepareStatement("select * from shop where s_id=?");
	            ps.setInt(1, id);
	            rs = ps.executeQuery();
	            if (rs.next()) {
	                Shop goods =new Shop(rs.getInt(1),rs.getString(2), rs.getInt(3), rs.getString(4), rs.getString(5));
	                
	                return goods;
	            }
	        } catch (Exception e) {
	            e.printStackTrace();
	        } finally {
	            DBHelper.colse(con, ps, rs);
	        }
	        return null;
	}
}

webapp:jsp代码

login.jsp:登录界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/css/bootstrap.css">
    <script src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script>
    <script src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
    <style>
        * {
            outline: none !important;
        }

        html,
        body {
            background: #1abe9c;
        }

        form {
            width: 300px;
            background: #ebeff2;
            box-shadow: 0px 0px 50px rgba(0, 0, 0, .5);
            border-radius: 5px;
            padding: 20px;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
        }

        .btn-group {
            width: 100%;
        }

        .btn-group button {
            width: 50%;
        }
    </style>
</head>

<body>
    <form action="doLogin.jsp" method="post">
        <h3 class="text-center" style="text-shadow: 2px 2px 1px #ed3f3f;">欢迎光临胡阿玛超市</h3>
        <div class="form-group">
            <input name="username" type="text" class="form-control" placeholder="请输入您的用户名">
        </div>
        <div class="form-group">
            <input name="userpwd" type="password" class="form-control" placeholder="请输入您的密码">
        </div>
        <div class="btn-group">
            <button type="submit" class="btn btn-primary">登录</button>
            <button type="button" class="btn btn-danger" onclick='location=href="regiest.html"'>没有账号?</button>
        </div>
    </form>
</body></html>

 doLogin.jsp:处理登录请求

<%@page import="java.util.ArrayList"%>
<%@page import="com.zfy.vo.CarItem"%>
<%@page import="java.util.List"%>
<%@page import="com.zfy.biz.impl.UserBizImpl"%>
<%@page import="com.zfy.biz.IUserBiz"%>
<%@page import="com.zfy.pojo.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:useBean id="u" class="com.zfy.pojo.User"></jsp:useBean>
<jsp:setProperty property="userName" name="u" param="username"/>
<jsp:setProperty property="userPwd" name="u" param="userpwd"/>
<%
	IUserBiz userbiz=new UserBizImpl();
	User user= userbiz.login(u);
	if(user!=null){
		session.setAttribute("username", user.getUserName());
		List<CarItem> car=new ArrayList();
		session.setAttribute("car", car);
		response.sendRedirect("index.jsp");
	}else{
		
		response.sendRedirect("login.jsp");
	}
%>

 index.jsp:主页

<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%>
<%@page import="com.zfy.pojo.Shop"%>
<%@page import="java.util.List"%>
<%@page import="com.zfy.biz.impl.ShopBizImpl"%>
<%@page import="com.zfy.biz.IShopBiz"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="${pageContext.request.contextPath }/bootstrap-3.3.7-dist/css/bootstrap.css">
    <script src="${pageContext.request.contextPath }/bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script>
    <script src="${pageContext.request.contextPath }/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
    <style>

        td:nth-child(3)::before{
            content: "$";
        }

    </style>
</head>
<%String obj = (String)session.getAttribute("username"); 
	if(obj==null){
		response.sendRedirect("login.jsp");
		return;
	}
	IShopBiz shop=new ShopBizImpl();
	List<Shop> shop1= shop.getAll();
%>
<body>
    <div class="jumbotron">
        <div class="container">
            <h1>欢迎光临胡阿玛SuperMarket</h1>
            <p>尊贵的<%=obj %></p>
             <p>
      <a href="car.jsp" class="btn btn-primary">🛒</a></p>
            <p>
            <a href="doExit.jsp" class="btn btn-warning">退出登录</a>
        </p>
        </div>
    </div>
    <table class="table">
        <tr>
            <th>商品序号</th>
            <th>商品名称</th>
            <th>商品单价</th>
            <th>商品描述</th>
            <th>商品图片</th>
            <th>操作</th>
        </tr>
        <%
        for (Shop sp : shop1) {
    		
    	
        
        %>
        <tr>
            <td><%=sp.getS_id() %></td>
            <td><%=sp.getS_name() %></td>
            <td><%=sp.getS_cost() %></td>
            <td><%=sp.getS_content() %></td>
            <td><img src="" alt=""><%=sp.getS_img() %></td>
            <td>
                <div class="btn-group btn-group-xs">
                    <button class="btn btn-primary"><span class="glyphicon glyphicon-tags"></span></button>
                    <a class="btn btn-primary" href="doAddCar.jsp?id=<%=sp.getS_id()%>">添加购物车</a>
                </div>
            </td>
        </tr>
        <%
        }
        %>
    </table>
</body></html>

 doAddCar.jsp:处理增加购物车请求

<%@page import="com.zfy.biz.impl.ShopBizImpl"%>
<%@page import="com.zfy.biz.IShopBiz"%>
<%@page import="com.zfy.vo.CarItem"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
//拿购物车
List<CarItem> car=(List<CarItem>)session.getAttribute("car");
IShopBiz shopsBiz=new ShopBizImpl();
//添加购物车界面
//确定是哪一件商品
String str=request.getParameter("id");
int id=-1;
if(str!=null){
	id=Integer.parseInt(str);
}
//判断商品是否存在
boolean f=true;
for(CarItem item:car){
	if(id==item.getShop().getS_id()){
		item.setCount(item.getCount()+1);
		item.setCount(item.getCount()*item.getShop().getS_cost());
		f=false;
		break;
	}
}
//只要判断f是否发生了改变
if(f){
	//如果没有发生改变说明里面没有重复商品
	CarItem carItem=new CarItem();
	//设置对应商品的数据
	carItem.setShop(shopsBiz.getOne(id));
	//设置商品数量
	carItem.setCount(1);
	//总价设置
	carItem.setSum(carItem.getShop().getS_cost()*carItem.getCount());
	car.add(carItem);
}
//更新购物车
session.setAttribute("car", car);
response.sendRedirect("index.jsp");
%>

以上就是Java 购物车项目(一)的一些内容!!

后面还会持续更新购物车项目的内容!!!!

 感 谢 阅 读 ……

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值