javaSE进阶综合项目:图书管理系统

1、项目大纲

2、功能模块

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

2.2、管理员登陆

首页展示

显示所有图书

整理图书

查询图书

添加图书

修改图书

下架图书

退出系统

2.3、普通用户登陆

首页展示

显示所有图书

查询图书

借阅图书

下载电子图书

退出系统

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

3.1、什么是三层架构

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

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

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

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

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

3.2、三层架构的好处

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

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

3.3、三层架构图

3.4、三层架构的优点

  1. 高内聚、低耦合,可以降低层与层之间的依赖。
  2. 容易移植、维护,如 B / S 转 C / S、SQLServer 转 Oracle、添加、修改、删除等。
  3. 有利于标准化。
  4. 有利于各层逻辑的复用。
  5. 安全性高。用户端只能通过业务逻辑层来调用数据访问层,减少了入口点,把很多危险的系统功能都屏蔽了

3.5、三层架构开发原理

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

pojo dao service controller utils

4、项目开发

4.1、准备工作

admin.txt(用户文本)

admin1 123456 1
admin2 66666 1
admin3 123123 1
张三 123 0
李四 456 0
王五 55555 0

图书馆(书记)

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

book.txt(图书)图书存放路径

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);
    }
}

完整源码

经验分享 程序员 微信小程序 职场和发展