JSP for shopping box

本文介绍如何使用T-SQL脚本创建数据库和表,并通过Java实现简单的购物车功能,包括添加、获取和删除商品。

============

T-SQL

============

if exists ( select * from sysdatabases where name = 'shop')
drop database shop
go
create database shop

use shop
go

if exists(select * from sysobjects where name ='product')
drop table product
go
create table product
(
prodId varchar(15) not null primary key,
prodName varchar(20) not null ,
prodPrice money not null,
prodNumber int
)
go
select * from product

insert into product values('XSQ001','sumsang显示器',2000,null)
insert into product values('XSQ002','sharp显示器',4000,null)
insert into product values('XSQ003','BenQ显示器',1000,null)
insert into product values('XSQ004','Acer显示器',3000,null)
insert into product values('XSQ005','AOC显示器',2200,null)
insert into product values('XSQ006','ViewSonic显示器',1500,null)

=========================

shopping car

==========================

package shoppingcar;

import java.sql.*;

import java.util.ArrayList;
import java.util.Hashtable;

public class shoppingcar {
private Hashtable productlist;
public shoppingcar() {
productlist = this.getProductlist();
}

public Hashtable getProductlist() {
return productlist;
}

//添加一个商品
public void addproduct(String prodId, product prod) {
productlist.put(prodId, prod);
}

//获取一个商品
public product getproduct(String prodId) {
return (product) productlist.get(prodId);
// product prod = null;
// Connection con = null;
// con = DBManager.getConnection();
// String sql = "select * from product where prodId='" + prodId + "'";
// try {
// Statement stmt = con.createStatement();
// ResultSet rs = stmt.executeQuery(sql);
// prod.setProdId(rs.getString("prodId"));
// prod.setProdName(rs.getString("prodName"));
// prod.setProdPrice(rs.getFloat("prodPrice"));
// prod.setProdNumber(rs.getInt("prodNumber"));
// } catch (SQLException ex) {
// ex.printStackTrace();
// } finally {
// try {
// con.close();
// } catch (SQLException ex1) {
// ex1.printStackTrace();
// }
// }
//
// return prod;
}

//删除一个商品
public void removeprod(String prodId) {
productlist.remove(prodId);
}


}

=================

product

==================

package shoppingcar;

public class product {
private String prodId;
private String prodName;
private int prodNumber;
private float prodPrice;
public product() {
}

public void setProdId(String prodId) {
this.prodId = prodId;
}

public void setProdName(String prodName) {
this.prodName = prodName;
}

public void setProdNumber(int prodNumber) {
this.prodNumber = prodNumber;
}

public void setProdPrice(float prodPrice) {
this.prodPrice = prodPrice;
}

public String getProdId() {
return prodId;
}

public String getProdName() {
return prodName;
}

public int getProdNumber() {
return prodNumber;
}

public float getProdPrice() {
return prodPrice;
}
}

==================

DBManager

===================

package shoppingcar;

import java.sql.*;

public class DBManager {
public DBManager() {
}

public static Connection getConnection() {
Connection con = null;
try {

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
try {
DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;dataBaseName=shop",
"sa", "");
} catch (SQLException ex1) {
ex1.printStackTrace();
}
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
return con;
}
}

============

continuing.........................................

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10395457/viewspace-967786/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10395457/viewspace-967786/

<template> <van-loading color="#0094ff" class="loadingBox" v-if="loadingShow">加载中...</van-loading> <div @scroll="pageScroll" class="pointsMall" v-else> <template v-if="orderList.length"> <div class="orderItem " style="" v-for="(item,index) in orderList"> <img :src="item.jspFile.filePath?initData.fileUrl+item.jspFile.filePath: require('@/assets/images/shopping.png')" style="height: 120px;width: 100%"/> <div class="orderBottom"> <div class="commodityNameBox">{{ item.commodityName }}</div> <div class="scoreBottom"> <p> <span class="numBox">{{ item.exchangeScore }}</span> <span class="scoreBox">积分</span> </p> <p class="duihuanBox" @click="showPopup(item)">兑换</p> </div> </div> </div> </template> <van-empty description="暂无数据" v-else style="margin: auto"/> <van-popup v-model:show="show" position="bottom" round closeable close-icon="close"> <img :src="popupObject.jspFile.filePath?initData.fileUrl+popupObject.jspFile.filePath:require('@/assets/images/shopping.png')" style="min-height: 120px;width: 100%"/> <div class="popupBox"> <div class="commodityNameBox">{{ popupObject.commodityName }}</div> <div> <span class="floatSpan">描述:</span> <span class="commodityDescriptionBox"> {{ popupObject.commodityDescription }} </span> </div> <div class="popupBottom"> <p> <span class="numBox">{{popupObject.exchangeScore}}</span> <span class="scoreBox">积分</span> </p> <p class="duihuancommodityBox" @click="commodityFun()">确认兑换</p> </div> </div> </van-popup> </div> </template> <script setup> import {computed, ref} from "vue"; import {post} from "@/request/http"; import {showSuccessToast, showFailToast} from 'vant'; import useGetters from "@/store/hooks/useGetters.js"; const storeState = useGetters(['initData']); const initData = computed(() => storeState.initData.value) let search = ref({total: 10, pageNum: 1, pageSize: 10,}) let show = ref(false) let orderList = ref([]) let popupObject = ref({}) let loadingShow = ref(true) function getList() { post('/server/jsp/commodity/manage/list', search.value).then(res => { orderList.value = orderList.value.concat(res.list) search.value.total = res.total loadingShow.value = false }) } getList() function pageScroll(e) { // console.log(e,'67') var scrollTop = e.target.scrollTop // 可视区高度 var windowHeight = e.target.clientHeight // 滑动条总高度 var scrollHeight = e.target.scrollHeight if (scrollTop + windowHeight == scrollHeight) { if (orderList.value.length < search.value.total) { search.value.pageNum++ getList() } else { } } } function showPopup(item) { popupObject.value = item show.value = true } function commodityFun(commodityId) { post('/server/jsp/commodity/order/add', {commodityId: popupObject.value.id}).then(res => { if (res) { showSuccessToast('兑换成功'); show.value = false } }) } </script> <style scoped lang="less"> .pointsMall { height: calc(100vh - 60px); overflow: auto; background-color: #ededed; display: flex; flex-wrap: wrap; gap: 10px; padding: 10px; box-sizing: border-box; align-content: flex-start; .card-item { display: flex; flex-direction: column; gap: 10px; row-gap: 10px; } .orderItem { background-color: white; width: calc((100vw - 30px) / 2); height: 180px } .commodityNameBox { color: #333333; display: flex; justify-content: start; font-size: 16px; font-weight: 600; } .scoreBox { color: #666666; font-weight: 400; } .numBox { color: #ff5145; font-size: 16px; font-weight: 600; margin-right: 3px; } .duihuanBox { background: #3a80e2; color: white; padding: 0px 15px; height: 25px; border-radius: 40px; display: flex; align-items: center; font-size: 14px; } /deep/ .van-popup { padding: 0px !important; } .popupBox { padding: 10px; display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; } .commodityDescriptionBox { color: #666666; font-size: 14px; line-height: 18px; } .duihuancommodityBox { background: #3a80e2; color: white; padding: 0px 15px; height: 30px; border-radius: 40px; display: flex; align-items: center; font-size: 14px; } .orderBottom { display: flex; flex-direction: column; justify-content: space-around; padding: 0px 10px; box-sizing: border-box; height: calc(100% - 120px) } .scoreBottom { display: flex; justify-content: space-between; align-items: center; } .floatSpan { float: left; color: #333333; font-weight: 600; line-height: 18px; font-size: 14px; } .popupBottom { display: flex; justify-content: space-between; align-items: center; } } .loadingBox { display: flex; align-items: center; justify-content: center; height: 100px; background-color: white; } </style>看下这段代码@scroll="pageScroll"这安卓手机不生效
11-28
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值