java数码商城小项目

数码商城小项目

在这里插入图片描述

在这里插入图片描述

DBCP

package com.blueshuma.DAO.Util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import org.apache.commons.dbcp2.BasicDataSource;

public class Dbcp {
	public static final String DB_CONFIG_FILEPATH = "db0828.properties";
	private static Properties pro;
	private static Dbcp dbcp;
	static {

		try {
			pro = new Properties();
			InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(DB_CONFIG_FILEPATH);
			pro.load(is);
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
	private BasicDataSource dataScource = null;

	private Dbcp() {
		dataScource = new BasicDataSource();
		dataScource.setDriverClassName(pro.getProperty("jdbc.driver"));
		dataScource.setUrl(pro.getProperty("jdbc.url"));
		dataScource.setUsername(pro.getProperty("jdbc.user"));
		dataScource.setPassword(pro.getProperty("jdbc.password"));
		dataScource.setInitialSize(Integer.parseInt(pro.getProperty("jdbc.initialSize")));// 设置初始化容量
		dataScource.setMaxTotal(Integer.parseInt(pro.getProperty("jdbc.maxTotal")));// 最大活动数
		dataScource.setMaxIdle(Integer.parseInt(pro.getProperty("jdbc.maxIdle")));// 最大空闲数
		dataScource.setMaxWaitMillis(Long.parseLong(pro.getProperty("jdbc.maxWaitMillis")));// 最大等待时间
	}

	public static Dbcp getInstance() {
		if (dbcp == null) {
			dbcp = new Dbcp();

		}
		return dbcp;
	}

	public BasicDataSource getDataScource() {
		return dataScource;
	}

	public Connection getConnection() throws SQLException {
		return dataScource == null ? null : dataScource.getConnection();

	}

	public void close(Connection conn, Statement stmt) {
		if (stmt != null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}

		}
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
		}
	}

	public void close(Connection conn, Statement stmt, ResultSet rs) {
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
		}
		close(conn, stmt);
	}

}

JDBCTemp

package com.blueshuma.DAO.Util;

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

public class JDBCTemp {
	public static final int update(PsmtCreater creater) {
		int result = -1;
		Connection conn = null;
		PreparedStatement psmt = null;
		try {
			conn = Dbcp.getInstance().getConnection();
			conn.setAutoCommit(false);
			psmt = creater.create(conn);
			result = psmt.executeUpdate();

			conn.commit();
		} catch (SQLException e) {
			if (conn != null) {
				try {
					conn.rollback();
				} catch (SQLException e1) {
					// TODO 自动生成的 catch 块
					e1.printStackTrace();
				}
			}
		} finally {
			Dbcp.getInstance().close(conn, psmt);
		}
		return result;
	}
	public static final Object query(PsmtCreater creater, RsSetCreater ex) {
		Connection conn = null;
		PreparedStatement psmt = null;
		ResultSet rs = null;
		Object result = null;
		try {
			conn = Dbcp.getInstance().getConnection();
			conn.setAutoCommit(false);
			psmt = creater.create(conn);
			rs = psmt.executeQuery();
			// 提取
			result = ex.extractor(rs);
			conn.commit();
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			if (conn != null) {
				try {
					conn.rollback();
				} catch (SQLException e1) {
					// TODO 自动生成的 catch 块
					e1.printStackTrace();
				}
			}
			e.printStackTrace();
		} finally {
			Dbcp.getInstance().close(conn, psmt, rs);
		}
		return result;
	}
}

回调 谁调用谁实现

package com.blueshuma.DAO.Util;

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

public interface PsmtCreater {
	PreparedStatement create(Connection conn) throws SQLException;
}

package com.blueshuma.DAO.Util;

import java.sql.ResultSet;
import java.sql.SQLException;

public interface RsSetCreater {
	Object  extractor(ResultSet rs) throws SQLException;
}

方法目录

package com.blueshuma.Test;

import com.blueshuma.Bean.User;
import com.blueshuma.Control.AdUserControl;
import com.blueshuma.Control.UserControl;
import com.blueshuma.Service.ADShopService;
import com.blueshuma.Service.AdOrderService;
import com.blueshuma.Service.OrdersService;
import com.blueshuma.Service.ShopService;
import com.blueshuma.Service.UserService;

public class Test {
	/**
	 * 
	 * @author blue
	 * 
	 * @date 2020年8月28日
	 * 
	 */
	public static void main(String[] args) {
		UserService usv = new UserService();
		ADShopService adsv = new ADShopService();
		OrdersService ods = new OrdersService();
		AdUserControl ac = new AdUserControl();
		ShopService ssv = new ShopService();
		UserControl uc = new UserControl();
		AdOrderService adosv = new AdOrderService();
		// ac.AdUserLogIn();//管理员集成模块
		// uc.userLogin();//用户集成模块
		// usv.addUser();//添加用户
		// usv.addMoney("test01");//交易
		// System.out.println(usv.logIn());//用户登录
		// adsv.findAll();//管理员查找所有商品
		// adsv.findNow();//管理员查看当天 上架
		// adsv.findShopByid();//管理员按照id查找商品
		// adsv.findByname();//管理员按照名字查找查找商品
		// adsv.addShop();//管理员添加商品
		//adsv.alShop();//管理修改商品信息
		// adsv.delShop();//管理员删除商品
		// ssv.findAll();//用户查找所有商品
		// ssv.findByname();用户按名字查找商品
		// ssv.findShopByid();//用户按照id查找商品
		// ssv.findNow();//用户查看今日上新
		// User user=new User(1,"test", "124r", 50000);
		// dc.makeDeal(user);//用户创建订单
		// ods.findMyOrders("test");//用户查找订单
		// ods.findMyDetail("3c1712ba-5e5a-47cb-af24-ce010ca013d0");//用户查看订单详细
		// adosv.findAll();//管理员查看所有订单
		// adosv.findMs();//管理员查看订单详细
		// adosv.TodaySum();//管理员员查看今日交易额
	}
}

配置文件properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/dbwork0828?serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true

jdbc.user=root
jdbc.password=852012

jdbc.initialSize=10
jdbc.maxTotal=5
jdbc.maxIdle=5
jdbc.maxWaitMillis=5000

在这里插入图片描述
在这里插入图片描述

详细下载链接

https://download.csdn.net/download/weixin_44052919/12816695

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘要信息: 电子商城系统主要功能包括:用户注册、用户登录、用户查看商城商品、用户购买商品、用户查看购物车并且清空购物车、用户找回账户以及密码、管理员登录、管理员注册、管理员查看用户信息、管理员删除用户信息、管理员删除商品信息、管理员添加商品信息、管理员修改商品信息、退出登录等。 图形可视化界面运行下能够显示系统启动进度条,删除、添加、注册等相关操作时能够弹出窗口加以提示,退出登录或系统时能够做到单击确认退出按钮才退出登录或系统,能够对用户加以提示。 注册用户或是管理员、添加商品信息、购买商品、删除商品或是用户信息、修改商品信息等相关操作时能够判断有无该用户或是商品。 用户在购买商品的时候同时更新商品的库存数量,管理员删除管理员时可以做到同时删除用户的购买信息。 主要内容: 一、项目名称   基于JAVASE的电子商城系统 二、功能要求 1、用户注册 2、用户登录 3、用户查看商品列表 4、用户购买商品 5、用户查看购买商品列表 6、用户清空购物车 7、用户找回账户和密码 8、管理员登录 9、管理员注册 10、查看用户信息 11、查看商品信息 12、删除用户信息 13、删除商品信息 14、添加商品信息 15、修改商品信息 16、退出用户登录 17、退出管理员登录 18、退出商城 三、需求分析 该系统的用户是商城消费者和商城管理者,根据客户的要求,可以注册、登录、购物、查看购物车信息、找回账户和密码,管理员可以对商品信息进行增加、修改、删除操作,可以对用户进行查看和删除。 四、设计思想 1、在控制台与图形可视化界面下运行 2、使用Mysql数据库存取用户登录信息和商品信息 3、使用List存取商品购买信息 4、把程序分为多个类,多个类之间的互相调用。 5、用户或是管理员进行注册、登录时能够提供校验码。 6、用户或是管理员获取数据库信息时能够与数据库进行交互。 7、用户购物要做到简洁明了。 8、用户只需要身份证号码和邮箱地址就能找回账户和密码。 9、注册、删除、修改等操作要有信息提示。 10、用户、管理员进行操作时能够做到操作提示与用户名提示。 11、退出登录或是退出系统时能够做到让用户有所考虑。 五、具体实现   1、技术思路: 界面:基于控制台与图形可视化界面(Swing)实现用户的输入和输出。 程序流程:在函数中利用循环与递归 ,读取用户输入,调用模块实现各个子功能。 2、功能子模块划分: ① 注册模块 ② 登录模块 ③ 查看商品模块(查看商品列表,购买商品) ④ 查看购买商品信息 ⑤ 管理员登录(添加管理员信息,对商品信息进行查看、增加、 修改、删除,对用户信息进行查看、删除,删除用户信息 时能够做到同时删除消费记录) ⑥ 退出系统 六、运行截图 1、商城系统启动进度条(进度条能够做到动态加载): 2、商城主界面: 3、用户注册界面(填写注册信息不符合要求时能够弹窗提示、并 且判断用户名是否重复等): 4、用户登录界面(账户、密码不一致时能弹窗提示): 5、用户服务选择界面(能够提示用户名): 6、购买商品界面(能够判断输入的商品序号是否正确): 7、查看购物车界面(能够一键清空购物车): 8、查看商城商品信息界面: 9、管理员登录界面: 10、找回账户与密码界面: 11、管理员服务选择界面: 12、添加管理员界面: 13、查看用户信息界面: 14、删除用户信息界面: 15、删除商品信息界面: 16、添加商品信息界面: 17、修改商品信息界面: 18、退出账号、管理员登录、商城系统时要有提示:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值