Java图书管理系统(JavaSE)

发布于:2024-03-23 ⋅ 阅读:(59) ⋅ 点赞:(0)

此项目,适合在Java入门阶段的小白学习,整个项目运用了java基础阶段所有的知识点。

1、项目功能大纲

        项目技术点:面向对象,集合,IO,线程等技术

        author:冯宝宝

        项目功能:如图所示

2、功能模块

2.1、登陆(管理员登陆,普通用户登陆)

2.2、管理员登陆

        首页展示

        显示所有图书

        整理图书

        查询图书

        添加图书

        修改图书

        下架图书

        退出系统

2.3、普通用户登陆

        首页展示

        显示所有图书

        查询图书

        借阅图书

        下载电子图书

        退出系统

3、项目架构(三层架构思想)

3.1、什么是三层架构

三层架构来源于后端开发的一种分层的思想

三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为

表示层(UI):主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。

业务逻辑层(BLL):主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。

数据访问层(DAL):主要用于实现对数据库的访问和操作。

三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。

3.2、三层架构的好处

三层架构区分层次的目的是为了 “高内聚,低耦合”

开发人员分工更明确,将精力更专注于应用系统核心业务逻辑的分析、设计和开发,加快项目的进度,提高了开发效率,有利于项目的更新和维护工作。

3.3、三层架构图

 

 3.4、三层架构的优点

  1. 高内聚、低耦合,可以降低层与层之间的依赖。
  2. 各层互相独立,完成自己该完成的任务,项目可以多人同时开发,开发人员可以只关注整个结构中的其中某一层。
  3. 容易移植、维护,如 B / S 转 C / S、SQLServer 转 Oracle、添加、修改、删除等。
  4. 有利于标准化。
  5. 有利于各层逻辑的复用。
  6. 安全性高。用户端只能通过业务逻辑层来调用数据访问层,减少了入口点,把很多危险的系统功能都屏蔽了

3.5、三层架构开发原理

实体类-------数据访问层-------业务逻辑层-------表示层 -------(工具类)

pojo             dao                     service              controller         utils

4、项目开发

4.1、准备工作

admin.txt(用户文本)  

注意:这里在txt文本里面定义了   管理员登录和普通用户登录   分别为用户名和密码   可自定义!

admin1 123456 

admin2 66666 

admin3 123123 

-----------------------------------

张三 123 

李四 456 

王五 55555 

图书馆(书记)

 图书下载文档(用来存放下载的图书)

 序号  作者  图书名称   价格   图书路径   图书数量

4.2、登录

用户实体类(User)

public class User{
    private String username;
    private String password;
    private int level;          //0(管理员) 或 1(普通用户)

    public User() {
    }

    public User(String username, String password, int level) {
        this.username = username;
        this.password = password;
        this.level = level;
    }

    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 int getLevel() {
        return level;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", level=" + level +
                '}';
    }

    //equals方法登录时比较输入的用户名和密码  比较输的用户名密码 
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        User user = (User) o;
        return
                Objects.equals(username, user.username) &&
                Objects.equals(password, user.password);
    }

    @Override
    public int hashCode() {
        return Objects.hash(username, password, level);
    }
}

未完待续......

本文含有隐藏内容,请 开通VIP 后查看