目录
项目路径截图:
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 购物车项目(一)的一些内容!!
后面还会持续更新购物车项目的内容!!!!
感 谢 阅 读 ……