图书馆管理系统(数据库版)
图书馆管理系统(数据库版)
目录:
- 图书馆管理系统(数据库版)
- 项目框架
- 项目分包
- 数据库列表
- 代码分析
- 工具包
- 所用到的接口:
- 分享一波:
- 总结:
项目框架
项目分包
上面为本次项目的分包建包示意图,大概的内容分类便是如此(dao为数据访问层,entity为实体类包,service为业务逻辑层,util为工具类包,view为UI界面包)
数据库列表
代码分析
工具包
在本次项目中,用到一些可以通用的代码,这里把它们编写为了工具类(即util包中的类)
BookUtils类:
import dao.LogDao;
import dao.impl.LogDaoImpl;
import entity.Book;
import entity.Log;
import entity.User;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;//书籍工具类
public class BookUtils {User user = new User();LogDao logDao = new LogDaoImpl();//罚金方法public void cost(int book_id,String type) throws ParseException {Date nowDate = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String borrow_time = logDao.viewBorrowTime(book_id);//获取借书时间String return_time = sdf.format(nowDate);//获取归还时间Date d1 = sdf.parse(borrow_time);//借出时间Date d2 = sdf.parse(return_time);//归还时间long charge = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000);if (charge <= 7){System.out.println("该书籍被您借出" + charge + "天,"+"感谢您规范用书!");}else {if (type.equals("学生")){System.out.println("该书籍被您借出"+ charge + "天,"+"已逾期"+(charge-7)+"天,您需要缴纳罚金:"+(charge-7)*5+"元,谢谢配合!");}else {System.out.println("该书籍被您借出"+ charge + "天,"+"已逾期"+(charge-7)+"天,您需要缴纳罚金:"+(charge-7)*3+"元,谢谢配合!");}}}//书籍Id限定public int idLimit(List<Book> books) {Scanner scanner = new Scanner(System.in);List<Integer> borrowedId = new ArrayList<>();//存放id的集合int book_id = 0;//id输入boolean flag = true;//增强for,遍历集合取出id存放在borrowedIdfor (Book book: books){borrowedId.add(book.getBook_id());//借阅书籍Id集合}while (flag){book_id = scanner.nextInt();//增强for,遍历并对比输入的idfor (Integer e : borrowedId){if (book_id == e){flag = false;}}if (flag){System.out.println("书籍Id输入错误,请重新输入:");}}return book_id;}
}
InputUtils类:对于输入的内容进行类型和范围的判断
package util;import java.util.Scanner;public class InputUtils {Scanner scanner = new Scanner(System.in);@SuppressWarnings({"all"})//int类型输入判断public int input() {while (!scanner.hasNextInt()) {//没有这一行的话会导致无限循环String input = scanner.next();System.out.println("不是数字,重新输入");}//当是数字时循环结束int inputNum = scanner.nextInt();return inputNum;}//double类型输入判断public double inputDouble() {while (!scanner.hasNextDouble()) {//没有这一行的话会导致无限循环String input = scanner.next();System.out.println("不是数字,重新输入");}//当是数字时循环结束double inputNum = scanner.nextDouble();return inputNum;}//double范围判断public double scopeDouble(double inputNum) {InputUtils inputUtils = new InputUtils();while (true) {if (inputNum < 0) {System.out.println("请输入正确的数字");inputNum = inputUtils.inputDouble();}else {break;}}return inputNum;}//int范围判断public int scope(int inputNum,int scope) {InputUtils inputUtils = new InputUtils();while (true) {if (inputNum > scope || inputNum < 1) {System.out.println("请输入正确的数字");inputNum = inputUtils.input();}else {break;}}return inputNum;}
}
ModifyUtils类:用户修改电话号码的类
package util;import java.util.Scanner;import static util.RegisterUtils.validateMobilePhone;public class ModifyUtils {//修改电话public String modifyPhone(){Scanner scanner = new Scanner(System.in);System.out.println("请输入新的电话号码:");String newPhone = scanner.next();while (!validateMobilePhone(newPhone)){System.out.println("输入错误,请重新输入(电话号码为11位)");newPhone = scanner.next();}return newPhone;}public String modifyPassword(){Scanner scanner = new Scanner(System.in);System.out.println("请输入新密码:");String newPassword = scanner.next();return newPassword;}}
RegisterUtils类:对于用户名、性别、电话、类型的判断
package util;import dao.impl.AdminDaoImpl;
import dao.impl.UserDaoImpl;import java.util.Scanner;
import java.util.regex.Pattern;public class RegisterUtils {//用户用户名判断public boolean nameProve(String user_name) {UserDaoImpl userDao1 = new UserDaoImpl();if (null != userDao1.nameProve(user_name)) {return false;} else {return true;}}//管理员用户名判断public boolean adminNameProve(String admin_name) {AdminDaoImpl adminDao1 = new AdminDaoImpl();if (null != adminDao1.nameProve(admin_name)) {return false;} else {return true;}}//性别判断public String sexProve(String sexNum) {String sex = null;if (sexNum.equals("1")) {sex = "男";return sex;} else if (sexNum.equals("2")) {sex = "女";return sex;} else {System.out.println("输入错误,请重新输入(1、男 | 2、女)");return null;}}//电话判断public static boolean validateMobilePhone(String in) {Pattern pattern = Pattern.compile("^[1]\\d{10}$");return pattern.matcher(in).matches();}//类型判断public String typeProve ( String typeNum){String type = null;if (typeNum.equals("1")) {type = "学生";return type;} else if (typeNum.equals("2")) {type = "教师";return type;} else {System.out.println("输入错误,请重新输入(1、学生 | 2、教师)");return null;}}
}
上面便是这次使用到的工具类,把他们封装成方法,使用起来更加的快捷与方便。
所用到的接口:
上图所示接口为数据访问层的连接接口,是与数据库相连的,对于数据库数据进行操作的接口,他连接着数据访问层的代码与业务逻辑层的代码。
这两个接口是连接UI层与业务逻辑层代码的枢纽。
分享一波:
链接:https://pan.baidu.com/s/10jCeuEIRaiUR5cbjgz3g3Q
提取码:klmn
总结:
以前写过一次没有用到数据库的图书馆管理系统,在以往的作品中,这次写的是连接数据库后所编写的图书馆管理系统,是自己对于三层架构与数据库的项目练习,通过这次项目的编写,是自己对于三层架构与数据库相关知识拥有了一个相对透彻的理解。
图书馆管理系统(数据库版)相关推荐
- php语言设计图书管理系统,图书馆管理系统PHP版_7tmu7b
图书馆管理系统PHP版_7tmu7b 所属分类:其他 开发工具:PHP 文件大小:15765KB 下载次数:0 上传日期:2020-11-22 11:12:53 上 传 者:ygrdmbji 说明: ...
- Microsoft-pubs(图书馆管理系统)-数据库设计
ylbtech-DatabaseDesgin:微软提供-pubs(图书馆管理系统)-数据库设计 1.A,数据库关系图 1.B,数据库设计脚本 View Code 1.C,功能实现代码 本文转自ylb ...
- 图书馆管理系统数据库设计与实现--用于学完SQL/MYSQL练手
图书馆管理系统数据库设计与实现 数据库设计大作业
- c语言图书借出归还系统,c语言图书馆管理系统(codeblocks版).docx
c语言图书馆管理系统(codeblocks版) /* *图书馆管理系统 *@author 琴卓 *@time 2015-12-10 */#include#include#include#include ...
- 图书馆管理系统重构(数据库版)
前言 之前和同学合作开发了一个通过I/O流实现的图书馆管理系统,具体可以看我之前写的博客(Java实战-基于I/O流设计的图书馆管理系统项目总结),在学习了数据库之后,我们基于之前的项目,合作完成了这 ...
- MySQL数据库期末项目 图书馆管理系统
1 项目需求分析 1.1 项目名称 图书馆管理系统 1.2 项目功能 在以前大多部分图书馆都是由人工直接管理,其中每天的业务和操作流程非常繁琐复杂,纸质版的登记信息耗费了大量的人力物力.因此图书馆管理 ...
- 美萍超市销售管理系统标准版access数据库密码mp611
美萍超市销售管理系统标准版access数据库密码mp611 作者:admin 来源:本站 发表时间:2015-10-14 19:01:43 点击:199 美萍超市销售管理系统标准版access后 ...
- 图书馆管理系统的数据库设计
图书馆管理系统的数据库设计 --学生表 CREATE TABLE stu_info( --学号 stu_num varchar(10) primary key, --姓名 stu_name varch ...
- java计算机毕业设计图书馆管理系统源码+系统+mysql数据库+LW文档+部署文件
java计算机毕业设计图书馆管理系统源码+系统+mysql数据库+LW文档+部署文件 java计算机毕业设计图书馆管理系统源码+系统+mysql数据库+LW文档+部署文件 本源码技术栈: 项目架构:B ...
- 计算机毕业设计Java阿博图书馆管理系统(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java阿博图书馆管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java阿博图书馆管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S ...
最新文章
- swift5.给系统类添加便利构造函数
- python删除重复值所在的行数_python – 在last中删除具有重复值的行
- MapReduce的shuffle阶段
- 白鹭引擎egret wing编辑器提示报错 egret 命令不存在 乱码的情况解决方法
- 如何通过一个结构体成员变量的地址找到该结构体的首地址?[备忘]
- python编程是干嘛的-编程小白必看!Python到底能做什么?
- C#读写三菱Fx PLC 使用Fx 串口协议 读写Fx3U设备
- python之word2vec实战学习
- 深入了解字符集和编码
- [收藏]DIV中控制超级链接的方法
- 达梦数据库启用日志方法,达梦数据库查看日志是否启用,达梦数据库日志文件位置查找
- 网易云音乐突破版权限制
- html导航栏自动调间距,HTML CSS导航栏间距
- 2022 年 Flutter 适合我吗?Flutter VS Other 量化对比
- 高等数学---向量解析几何
- 什么是DNS污染?DNS污染怎么办怎么解决?
- 音视频数据处理入门:AAC音频码流解析
- 解决Word2010中插入图片时变成空白框问题
- Easy Excel 使用总结
- 国际战略中aaa模式_AAA游戏中的微交易将继续存在(但仍然很糟糕)