超市收银系统:
该系统主要是针对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)