首页 > 编程语言 >Java超市收银系统(一、用户登录)

Java超市收银系统(一、用户登录)

时间:2024-08-11 17:58:53浏览次数:7  
标签:Java String 登录 java 收银 sql import password public

引言

        今天,我们来学习一下如何用java写一个简单的系统(后续内容包括网络连接、数据库连接、json字符串编码、爬虫、数据增删改查、线程处理等等)会不间断更新,首先是环境配置要求,我们需要在maven库中下载4个包,分别是Jsoup、Gson、JXL、mysql用于字符串解析、数据库连接以及excel操作。

用户登录

        新建一个 java 项目,在 src 文件中新建4个包,分别是dao(功能函数包)、ui(用户显示包)、util(用户连接包)、vo(信息数据包)。

dao

        实现用户名查询功能,所有信息为用户名、密码、姓名、角色。

ui

        主函数实现登录功能,并显示当前时间。

util

        JDBC数据库连接。

vo

        表为用户表,包含4个变量,用户名、密码、姓名、角色。

数据库代码

       MySQL 的官方网站的网址是:www.mysql.com,进入主页后选择 download,进入下载页面,可以选择解压版(MySQL Community Server)或者安装版(MySQL Installer for Windows),建议下载安装版。

        下载完成后,可以选择可视化软件帮助我们,这里选用了 mysql 官方的图形管理工具 workbench。我们创建一个 database 名为 sale,然后在sale数据库下创建表,名为tuser,添加两条用户信息。

java实现数据库连接

        MySQL 中的数据库驱动程序路径为 com.mysql.jdbc.Driver,开发常用的连接 MySQL 的地址字符串为: jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=utf-8,

驱动加载

获取链接

        这里红框 sale 是数据库的名称。

关闭资源

        MySQL 中的数据库驱动程序路径数据库操作完毕之后需要关闭连接以释放资源。

结果演示

完整代码

dao—UserDAO

package dao;

import util.DBUtil;
import vo.User;

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

public class UserDAO {
    public static User queryName(String userName) {
        //获取链接
        Connection con = DBUtil.getConnection();
        //创建语句
        String sql = "select * from t_yonghu where yonghuming = ?";
        PreparedStatement pst = null;
        User user = null;
        try {
            pst = con.prepareStatement(sql);
            //执行语句
            pst.setString(1,userName);
            ResultSet rs = pst.executeQuery();
            //处理结果 将rs存放在user对象中
            if(rs.next()) {
                user = new User();
                user.setUserName(rs.getString("yonghuming"));
                user.setPassword(rs.getString("mima"));
                user.setChrName(rs.getString("xingming"));
                user.setRole(rs.getString("juese"));
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } finally {
            //释放资源
            DBUtil.close(con,pst);
        }
        return user;
    }

}

ui—Driver

package ui;

import dao.UserDAO;
import vo.User;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Driver {
    public static void main(String[] args) {
        System.out.println("欢迎使用超市超市收银系统,请登录");
        for(int i=0;i<3;i++) {
            System.out.println("输入用户名:");
            Scanner scanner = new Scanner(System.in);
            String userName = scanner.nextLine();
            String chrName = null;
            System.out.println("输入密码:");
            String password = scanner.nextLine();

            //按用户名查询用户信息
            User user = UserDAO.queryName(userName);
            boolean success = false;
            if (user != null) {
                if (user.getPassword().equals(password)) {
                    success = true;
                    chrName = user.getChrName(); // 获取登录用户的 chrName
                }
            }

            //当前时间显示
            SimpleDateFormat formatter= new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
            Date date = new Date(System.currentTimeMillis());

            if(success) {
                System.out.println("欢迎使用超市超市收银系统\n");
                System.out.println("当前收银员:"+chrName+",当前时间:"+formatter.format(date));
            } else {
                System.out.println("输入有误,请重新输入");
            }
            if (i == 2) {
                System.out.println("最多尝试三次");
                System.exit(0);
            }
        }
    }
}

util—DBUtil

package util;

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

public class DBUtil {

    //驱动加载,只需执行一次
    static{
        String driveName = "com.mysql.cj.jdbc.Driver";
        try {
            Class.forName(driveName);
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    //获取链接
    public static Connection getConnection(){
        String url = "jdbc:mysql://localhost:3306/sale?useUnicode=true&characterEncoding=utf-8";
        String user = "root";
        String password = "123456";
        Connection con = null;
        try {
            con = DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return con;
    }

    //关闭资源
    public static void close(Connection con, PreparedStatement pst){
        if(con!=null) {
            try {
                con.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        if(pst!=null) {
            try {
                pst.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }

}

vo—User

package vo;

public class User {
    private String userName;
    private String password;
    private String chrName;
    private String role;

    public User() {
    }

    public User(String userName, String password, String chrName, String role) {
        this.userName = userName;
        this.password = password;
        this.chrName = chrName;
        this.role = role;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getChrName() {
        return chrName;
    }

    public void setChrName(String chrName) {
        this.chrName = chrName;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }
}

数据库—mysql

CREATE DATABASE sale;

USE sale;

DROP TABLE IF EXISTS `t_yonghu`;
CREATE TABLE `t_yonghu` (
  `yonghuming` varchar(255) NOT NULL,
  `mima` varchar(255) DEFAULT NULL,
  `xingming` varchar(255) DEFAULT NULL,
  `juese` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`yonghuming`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
select * from t_yonghu;

INSERT INTO `t_yonghu` VALUES ('mk', 'mk123', '明空', '管理员');
INSERT INTO `t_yonghu` VALUES ('jx', 'jx123', '瑾熙', '收银员');

标签:Java,String,登录,java,收银,sql,import,password,public
From: https://blog.csdn.net/m0_74325713/article/details/140933773

相关文章

  • Java计算机毕业设计的场馆预订系统的设计与实现(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着全民健身热潮的兴起和体育产业的蓬勃发展,体育场馆作为体育活动的重要载体,其高效管理和便捷服务需求日益凸显。然而,传统的手工预订或简单的在线预......
  • Java计算机毕业设计的蛋糕店线上选购系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网的飞速发展,电子商务已成为现代消费模式的重要组成部分,深刻改变了人们的购物习惯。在食品行业,尤其是烘焙领域,线上购物因其便捷性、多样性及......
  • Java计算机毕业设计宠物领养系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和人们生活水平的提高,宠物已成为许多家庭不可或缺的一员,它们不仅为人们的生活带来了欢乐与陪伴,还促进了人与自然的和谐共处。然......
  • JetBrains IntelliJ IDEA 2024.2 (macOS, Linux, Windows) - 领先的 Java 和 Kotlin I
    JetBrainsIntelliJIDEA2024.2(macOS,Linux,Windows)-领先的Java和KotlinIDE请访问原文链接:https://sysin.org/blog/jetbrains-idea/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsIntelliJIDEA-领先的Java和KotlinIDE使开发更高效、更......
  • Java计算机毕业设计的多媒体的应用(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着信息技术的飞速发展,多媒体技术在各行各业的应用日益广泛且深入,彻底改变了信息的传播与接收方式。在数字化时代,视频作为多媒体信息的重要载体,凭借......
  • Java计算机毕业设计的党员信息数据可视化分析平台(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,数据已成为推动社会进步和组织管理优化的重要力量。在党建工作中,党员信息作为核心资源,其管理与利用直接关系到党组织决策的科......
  • Java计算机毕业设计的“IDO”体育会员管理系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在全民健身热潮持续升温的当下,体育健身行业迎来了前所未有的发展机遇。然而,传统的体育场馆和健身俱乐部在会员管理、课程安排、资源调度等方面面临着......
  • Java GeoTools构建地理点线面的方法
    在Java中,使用GeoTools库可以方便地处理地理空间数据,包括构建地理点、线、面等。以下是一个详细的示例,展示如何使用GeoTools来创建地理点(Point)、线(LineString)和多边形(Polygon)。1.准备工作首先,确保我们已经添加了GeoTools库到我们的项目中。如果我们使用的是Maven,可以在pom.xml中......
  • Java方法
    一、方法的定义方法就是将功能重复的代码封装成一段独立的代码,通过调用方法的方式(作用)提高代码的复用性(减少代码重复)。每一个方法只能完成一个功能。二、方法的声明格式[修饰符1,修饰符2]返回值类型方法名(参数类型形式参数1,参数类型形式参数2,...){执行语句......
  • 基于Java Springboot“一分钟”寝室小卖部系统
    一、作品包含源码+数据库+设计文档万字+PPT+全套环境和工具资源+部署教程二、项目技术前端技术:Html、Css、Js、Vue、Element-ui数据库:MySQL后端技术:Java、SpringBoot、MyBatis三、运行环境开发工具:IDEA/eclipse数据库:MySQL5.7数据库管理工具:Navicat10以上版本环境......