Java-超市收银系统(Java基础知识项目)

超市收银系统:
在这里插入图片描述
该系统主要是针对Java基础知识的练习项目
设计目标是面向小超市
系统主要分为两个模块:会员登入模块、员工登录模块
其中员工登录中还有其他许多小模块,如会员管理、上下班打卡等
其中比较难的主要是营业额查询、收银结算和打卡

开发工具:eclipse
数据库:MySQL 8 sqlyog

关于打卡:
员工考勤信息系统
实现智能化的考勤功能
需求:
企业上班时间:9:00
企业下班时间:18:00
标准:
11:00>上班打卡时间>9:00: 迟到处理
上班打卡时间>11:00 旷工处理
16:00<下班打卡时间<18:00 早退处理
下班打卡时间<16:00 旷工处理
上班、下班缺卡 旷工处理
上班时间有数据,下班没有数据 旷工处理
上班时间没有数据,下班有数据 旷工处理
1、实现员工智能考勤
a、能够根据员工的打卡信息,统计考勤信息
(考勤信息:迟到(个数)、早退(个数)、旷工(个数))
2、实现员工打卡功能
a、上班打卡
b、下班打卡

3、员工注册功能

数据库中打卡语句:

数据库视图

create or replace view check_info_son
as
select work_date,employee_no,clock_in_time,clock_off_time,
TIMESTAMPDIFF(MINUTE, clock_in_time, concat(clock_date,' 09:00:00')) as diff_in_time,
TIMESTAMPDIFF(MINUTE, clock_off_time, concat(clock_date,' 18:00:00')) as diff_off_time
from work_date w 
left join clock_info t 
on t.clock_date = w.work_date 


create or replace view check_info
as
select t.work_date,t.employee_no,clock_in_time,clock_off_time, 
	case 
	        when diff_in_time<-120
			then '旷工'
		when diff_in_time<0 
			then '迟到'
		when diff_in_time>0
			then '正常'
		else '忘记打卡'
	end as diff_in_status,
	case 
	        when diff_off_time>120
			then '旷工'
		when diff_off_time>0 
			then '早退'
		when diff_off_time<0
			then '正常'
		else '忘记打卡'
	end as diff_off_time


from check_info_son t 








select * from check_info;


select * from employee where number='s0001';

因为我使用的数据库为:
在这里插入图片描述
所以在eclipse中的jar包为:
在这里插入图片描述

关于这个的操作我之前的博客有

在我的项目中以下这个文件也有所不同
在这里插入图片描述
如下:
在这里插入图片描述

driver=com.mysql.cj.jdbc.Driver
#url=jdbc:mysql:///mydb1?rewriteBatchedStatements=true&useUnicode=true&charcterEncoding=utf8
url=jdbc:mysql:///supermaket?rewriteBatchedStatements=true&serverTimezone=UTC
#url=jdbc:mysql:///mydb1?rewriteBatchedStatements=true
user=root 
password=123456

整个项目分别有:
在这里插入图片描述
在这里插入图片描述
管理员功能实现代码:
impl 中代码

package com.gec.dao.impl;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;

import com.gec.dao.AdminDao;
import com.gec.dao.BuyerDao;
import com.gec.domain.Admin;
import com.gec.domain.Buyer;
import com.gec.domain.Cashier;
import com.gec.util.JDBCUtil;




public class AdminDaoImpl implements AdminDao{
   
   
	Scanner sc = new Scanner(System.in);
	private String sql;
	

	@Override
	//管理员 账号密码
	public Admin login(String number, String password) {
   
   
		
		Connection conn = null;
		PreparedStatement statement = null;
		ResultSet rs = null;
		
		try {
   
   
			conn = JDBCUtil.getConnection();
			
			String sql = "select * from employee where number = ? and password=?";
			statement = conn.prepareStatement(sql);
			
			statement.setString(1, number);
			statement.setString(2, password);
			
			
			System.out.println("sql:" + statement);
			
			//执行
			rs = statement.executeQuery();
			//遍历结果集
			while(rs.next()) {
   
   
				//rs.getInt(1);  这种不推荐
				String nb = rs.getString("number");
				String uname = rs.getString("username");
				
				String upassword = rs.getString("password");
				String sex = rs.getString("sex");
				String phonr = rs.getString("phone");
				int role = rs.getInt("role");
				
				//创建用户对象
				Admin user = new Admin();
				user.setNumber(nb)
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值