用java实现图书管理系统。

article/2025/10/10 23:41:08

在学完java基础篇的时候,安排做了一个综合版的java基础项目,可以把之前学到的知识综合运用。

图书管理系统。

  • 一.项目设计到的知识
    • 1.MVC设计模式思想(分包)
      • >项目分包
      • >MVC简单介绍
    • 2.GUI(图形化界面)
    • 3.JDBC连接MySql数据库
    • 4.I/O流
    • 5.面向对象思想
  • 项目运行效果
      • 登录界面
    • 主界面
      • 读者信息管理
        • 读者信息添加
        • 读者信息查询和修改
          • 读者信息查询
          • 读者信息修改
      • 图书信息管理
        • 图书信息添加
        • 图书信息查询
        • 图书信息修改
      • 图书借阅管理
        • 图书借阅
        • 图书归还
      • 基础信息维护
        • 图书类别设置
        • 读者类别设置
        • 罚金设置
      • 用户管理
        • 修改密码
        • 用户添加
        • 用户删除

一.项目设计到的知识

1.MVC设计模式思想(分包)

>项目分包

在这里插入图片描述
运用这种设计模式的优点:
MVC 是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。

>MVC简单介绍

M model业务模型(pojo/domain/bean)与现实中实体类联系
V views视图层(views)
图形化界面(gui)
C controller
用户与软件交互,处理信息
dao层(数据持久化)
提供数据
service层(处理逻辑)
处理数据
controller(javaweb里边的内容,servlet)

较详细的图示:
在这里插入图片描述

2.GUI(图形化界面)

其中的GUI代码案例:

package org.vector.view;import java.awt.Cursor;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;import org.vector.bean.Book;
import org.vector.bean.Booktype;
import org.vector.bean.Borrowbook;
import org.vector.bean.Reader;
import org.vector.bean.Readertype;
import org.vector.bean.Users;
import org.vector.serviceImpl.UsersServiceImpl;public class BookLogin extends JFrame{public BookLogin() {buliding();addListeners();}public static String name1;public static List<Users> list = new ArrayList<Users>();public static List<Reader> list1 = new ArrayList<Reader>();public static List<Book> list2 = new ArrayList<Book>();public static List<Readertype> list3 = new ArrayList<Readertype>();public static List<Booktype> list4 = new ArrayList<Booktype>();public static List<Borrowbook> list5 = new ArrayList<Borrowbook>();private JButton login,reset,register;private JLabel name,password,label;private JTextField name_Text;private JPasswordField password_Text;private void buliding() {// TODO Auto-generated method stubsetLayout(null);background();setTitle("图书借阅系统登录界面");Font font = new Font("圆体", Font.BOLD, 50);label = new JLabel("图书借阅系统");label.setFont(font);label.setBounds(40, 20, 400, 50);add(label);name = new JLabel("用户名:");name.setBounds(45, 100, 120, 30);add(name);name_Text = new JTextField(20);name_Text.setBounds(100, 100, 200, 30);add(name_Text);password = new JLabel("密    码:");password.setBounds(45, 150, 120, 30);add(password);password_Text = new JPasswordField(20);password_Text.setBounds(100, 150, 200, 30);add(password_Text);login = new JButton("登录");login.setBounds(50, 200, 100, 35);add(login);reset = new JButton("重置");reset.setBounds(150, 200, 100, 35);add(reset);
//		register = new JButton("注册");
//		register.setBounds(250, 200, 100, 35);
//		add(register);setBounds(400,300,400,300);setLocation((2000-getWidth())/2,(1000-getHeight())/2);setResizable(false);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setVisible(true);}public void background() {setSize(600, 500);setLocation(100, 100);String path = "Login.jpg";ImageIcon background = new ImageIcon(path);JLabel label = new JLabel(background);label.setBounds(0, 0, this.getWidth(), this.getHeight());JPanel imagePanel = (JPanel) this.getContentPane();imagePanel.setOpaque(false);this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}private void addListeners() {login.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stublogin.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));int flag = 0;String name = name_Text.getText();String password = password_Text.getText();name1 = name;UsersServiceImpl  user = new UsersServiceImpl();BookLogin.list.clear();BookLogin.list.addAll(user.findUsers());for (int i = 0; i < BookLogin.list.size(); i++) {if(name.equals(BookLogin.list.get(i).getName())&&password.equals(BookLogin.list.get(i).getPassword())){JOptionPane.showMessageDialog(null, "登录成功", "标题", JOptionPane.WARNING_MESSAGE);BookLogin.this.dispose();new BorrowbookView().setVisible(true);flag = 1;BookLogin.this.dispose();new BorrowbookView().setVisible(true);break;}	}if(flag == 0) {JOptionPane.showMessageDialog(null, "登录失败,该用户不存在", "标题", JOptionPane.WARNING_MESSAGE);}}});reset.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubBookLogin.this.dispose();new BookLogin().setVisible(true);}});
//		register.addActionListener(new ActionListener() {
//			
//			@Override
//			public void actionPerformed(ActionEvent e) {
//				// TODO Auto-generated method stub
//				BookLogin.this.dispose();
//				new UserAdd().setVisible(true);
//			}
//		});}
}

3.JDBC连接MySql数据库

用了c3p0对原生JDBC的封装思想,大大提高了开发者的效率。
c3p0xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><!-- c3p0默认配置,下面还可以配置多个数据库 --><default-config><property name="jdbcUrl">jdbc:mysql://localhost:3306/mybook?characterEncoding=UTF8</property><property name="driverClass">com.mysql.jdbc.Driver</property><property name="user">root</property><property name="password">password</property><property name="initialPoolSize">6</property><property name="maxPoolSize">10</property><property name="maxIdleTime">10000</property></default-config>
</c3p0-config>

在这里插入图片描述
大多数情况下只用改,数据库名,账号,密码,别的默认值就行。

4.I/O流

I/O流是开发过程中,最耗费,最占用资源的一门技术,在开发中尽量减少对I/O的使用。

5.面向对象思想

面向对象的思想是在整个学java期间,都不断去学习,这种思想是潜移默化的,短时间内,往往难以清楚地理解。

项目运行效果

登录界面

在这里插入图片描述
在这里插入图片描述

主界面

在这里插入图片描述
…绅士们,请收回你们的目光。

读者信息管理

在这里插入图片描述

读者信息添加

在这里插入图片描述
在这里插入图片描述

读者信息查询和修改

在这里插入图片描述

读者信息查询

在这里插入图片描述
查询成功!
在这里插入图片描述

读者信息修改

在这里插入图片描述
修改成功!
在这里插入图片描述

图书信息管理

在这里插入图片描述

图书信息添加

在这里插入图片描述
在这里插入图片描述

由于东西较多,后面的我就不一一演示了,大家有兴趣的可以自己做一个更好的。

图书信息查询

在这里插入图片描述

图书信息修改

在这里插入图片描述

图书借阅管理

在这里插入图片描述

图书借阅

在这里插入图片描述

图书归还

在这里插入图片描述

基础信息维护

在这里插入图片描述

图书类别设置

在这里插入图片描述

读者类别设置

在这里插入图片描述

罚金设置

在这里插入图片描述

用户管理

在这里插入图片描述

修改密码

在这里插入图片描述

用户添加

在这里插入图片描述

用户删除

在这里插入图片描述
详细的可以了解,资源里边的项目。

联系方式qq:1287440358 微信:Burial_DH。


http://chatgpt.dhexx.cn/article/AbUC91RY.shtml

相关文章

Java实现简易版的【图书管理系统】

目录 &#x1f30e;1.分析图书管理系统的功能 &#x1f30d; 2.在IDEA中进行功能类的创建 &#x1f984;2.1 创建一个名为book的包&#xff0c;里面存放书相关的 &#x1f984; 2.2 创建一个名为Operation的包&#xff0c;里面存放对书的所有操作 &#x1f30e; 3.进行用户…

Java图书管理系统(代码及详解)

图书管理系统在C、C、Java学习中我们都会进行练习来串联我们学习的一些知识以及使用场景&#xff0c;这里跟着我我带大家敲Java版本&#xff01; 结果展示&#xff1a; 这是我们最终实现的图书管理系统&#xff0c;下面我们慢慢来 思路&#xff1a; Java是面向对象的语言特点…

JAVA实现简易的图书管理系统(含过程)

目录 设计背景 成果展示 设计思路 详细代码 book包 Book类 BookList类 operation包 IOperation接口 AddOperation类 BorrowOperation类 DelOperation类 DisplayOperation类 ExitOperation类 ReturnOperation类 user包 User类 Admin类 NormalUser类 Test类…

图书管理系统(Java实现)[附完整代码]

作者&#xff1a;爱塔居的博客_CSDN博客-JavaSE领域博主 专栏&#xff1a;JavaSE 作者专栏&#xff1a;大三学生&#xff0c;希望跟大家一起进步&#xff01; 文章目录 目录 文章目录 一、图书管理系统菜单 二、实现基本框架 三、实现业务 3.1 打印所有图书 3.2 退出系统 3.3 查…

JAVA->实现图书管理系统

目录 一、图书管理系统展示 1.管理员 2.普通用户 ​编辑3.操作 二、图书管理系统基本实现思路 book --- 包 1.Book类 注意&#xff1a; 2.BookList类 注意&#xff1a; Opreration --- 包 Operration接口 1.AddOperation -- 增加图书 注意&#xff1a; 2. BorrowO…

Java实现简单的图书管理系统

图书管理系统 简介知识点类封装包继承接口多态 创建书&#xff08;Book&#xff09;书架&#xff08;BookList&#xff09;主函数&#xff08;Main&#xff09;用户&#xff08;User&#xff09;管理员&#xff08;Administrator&#xff09;接口&#xff08;IOperation&#x…

Java基础之图书管理系统

一&#xff1a;建立信息表 为图书管理人员编写一个图书管理系统&#xff0c;图书管理系统的设计主要是实现对图书的管理和相关操作&#xff0c;包括3个表&#xff1a; 图书信息表——存储图书的基本信息&#xff0c;包括书号、书名、作者、出版社、出版日期、存馆数量、定价等…

Java实现简单图书管理系统

目录 利物浦是冠军&#xff01; 一、图书管理系统的功能 二、图书管理系统的基本实现思路 1、Book包 2、user包 3、operation包 4、利用Main函数来连接所有包 三、图书管理系统的具体实现 1、Book包 &#xff08;1&#xff09;book类 &#xff08;2&#xff09;bookL…

Java实现图书管理系统(超详细解析)

图书管理系统简单实现。图书管理系统基于Java&#xff0c;页面使用jsp实现。 用户进入登录页面&#xff0c;输入账号密码&#xff0c;系统会自动检验账号和密码是否匹配&#xff0c;匹配成功则进入图书管理首页。首页查看图书信息&#xff0c;新增图书信息&#xff0c;删除不需…

Java实现简单的图书管理系统(讲解清晰,代码齐全,能正常运行)

目录 实现的样子 大致思路 代码 &#xff08;按照这个目录创建包&#xff09; 首先是book包下&#xff0c;有两个类 book类 bookList类 然后是operation包下&#xff0c;有7个类和1个接口 AddOperation类 BorrowOperation类 DelOperation类 DisplayOperation类 ExitO…

Java课程设计—— 图书管理系统

1系统需求分析 1.1功能需求分析 本课题根据图书信息管理综合分析&#xff0c;便出于方便管理考虑&#xff0c;将图书信息管理系统的功能总结起来&#xff0c;共需要实现以下几个方面功能: 1.1.1管理图书信息 管理所有图书的基本信息&#xff0c;对图书信息的操作包括添加、…

用Java实现简易的图书管理系统(超详细)

目录 1.设计背景 2.设计思路 3.模块展示及代码演示 3.1 Book类的实现 3.2 BookList类的实现(书架) 3.3 异常类的实现(OperationException) 3.4 用户类的实现 3.5 操作接口的实现(定义规范) 3.6 操作类的具体实现 3.6.1 增加操作 3.6.2 查找操作 3.6.3 删除操作 3.6…

mysql 数组函数_mysql数组函数知识讲解

MySQL的数组函数有很多种&#xff0c;今天给大家介绍的就是mysql数组中的mysql_fetch_array()函数&#xff0c;mysql_fetch_array()函数的代码编写有什么特点呢&#xff1f; MySQL中有很多功能强大的函数&#xff0c;下面为您介绍的函数mysql_fetch_array()属于MySQL数组函数&a…

MySQL聚合函数

一、聚合函数介绍 1、聚合函数作用于一组数据&#xff0c;并对一组数据返回一个值。 2、聚合函数类型 AVG() SUM() MAX() MIN() COUNT() 3、聚合函数不能嵌套调用。比如不能出现类似“AVG(SUM(字段名称))”形式的调用。 二、AVG和SUM函数 # AVG函数用于求一组数据的平均值&a…

MySql常用函数大全讲解

MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数&#xff0c;可以简化用户的操作。例如&#xff0c;字符串连接函数可以很方便的将多个字符串连接在一起。在这一讲中…

MySql统计函数COUNT详解

MySql统计函数COUNT详解 1. COUNT()函数概述2. COUNT()参数说明3. COUNT()判断存在4. COUNT()阿里开发规范 1. COUNT()函数概述 COUNT() 是一个聚合函数&#xff0c;返回指定匹配条件的行数。开发中常用来统计表中数据&#xff0c;全部数据&#xff0c;不为NULL数据&#xff0…

MYSQL窗口函数

文章目录 一、为何使用窗口函数二、什么是窗口函数三、窗口函数如何使用3.1 序号函数3.2 分布函数3.3 前后函数3.4 头尾函数3.5 其他函数3.6 聚类窗口函数 一、为何使用窗口函数 在日常工作中经常会遇到类似这样的需求&#xff1a; 怎么样得到各部门工资排名前N名的员工列表?…

MySQL常见函数

一、单行函数 1.1 字符函数 length(str)&#xff1a;统计字符串的字节数&#xff08;取决于编码方式&#xff0c;utf8汉字3字节&#xff0c;gbk汉字2字节&#xff09;concat(str1, str2)&#xff1a;拼接字符substr/substring(str, n1 [,n2])&#xff1a;切割字符&#xff0c…

MySQL常用函数大全(总结篇)

本篇文章讲解是是MySQL的函数方法&#xff0c;涵盖所有的MySQL常见的方法。下面是本篇文章的目录结构&#xff0c;可以根据自己需求点击右方目录查找&#xff1a; 一、数字函数二、字符串函数三、日期函数四、MySQL高级函数 &#xff08;一&#xff09;数字函数 1、ABS(x) 返…

MySQL常用函数大全(实例演示)

此博客主要包括如下类型函数&#xff1a; 一、数字函数 二、字符串函数 三、日期函数 四、MySQL高级函数 一、数字函数 1、ABS(x) 返回x的绝对值 SELECT ABS(-1); 结果&#xff1a; 2、AVG(expression) 返回一个表达式的平均值&#xff0c;expression 是一个字段 SELE…