数据库课程设计:图书借阅管理系统(控制台交互)
问题描述
实现简易版图书借阅管理系统,学生在系统里可以检索图书,借阅图书,归还图书等功能;管理员有完成书籍信息,学生信息维护等功能
需求分析
- 系统分为管理员账户,学生账户
- 管理员账户可以进行书籍,学生信息的维护(CRUD)。
- 学生账户可以借书,还书,检索图书
要点
开发语言
:Java (jdk版本12+)
数据库
:MySQL (版本8.0+)
工具
:JDBC
交互场景
:控制台
软件
:IDEA,Navicat
数据库设计
实体关系:
数据库表设计:
注意
:所有表的主键记得勾上自增
管理员表:
书籍表:
学生表:
借书表:
程序运行效果
以下为控制台交互效果
学生登录
-----------------图书管理系统 1.学生登录 2.管理员登录
-------------------
请输入身份:1
请输入账号:666
请输入密码:666登录成功!
---------------
1.借书
2.还书
3.检索
4.退出
---------------
请选择:
1
检索方式:1.书名 2.ISBN码
请选择:
2
请输入图书ISBN:3232
查找结果如下:
id isbn 书名 作者 出版社 馆藏数量
2 3232 数据库设计 小A 上海出版社 6
-------1.借阅 2.重新输入查询 3.返回------
请选择:1
--借书登记--
借阅成功!
---------------
1.借书
2.还书
3.检索
4.退出
---------------
请选择:
2
----我要还书----
当前借阅记录:
id isbn 书名 作者 出版社
2 3232 数据库设计 小A 上海出版社
-------1.还书 2.返回------
请选择:2
---------------
1.借书
2.还书
3.检索
4.退出
---------------
请选择:
3
检索方式:1.书名 2.ISBN码
请选择:
1
请输入书名:西游记
--------------------
查找结果如下:
id isbn 书名 作者 出版社 馆藏数量
1 2132131 西游记 吴承恩 清华 7
-------1.重新输入查询 2.返回------
2
---------------
1.借书
2.还书
3.检索
4.退出
---------------
请选择:
管理员登录
-----------------图书管理系统 1.学生登录 2.管理员登录
-------------------
请输入身份:2
请输入账号:admin
请输入密码:admin登录成功!
--------------
1.学生管理
2.书籍管理
3.图书借阅一览
4.退出
--------------
请选择:
3
学生账号 学生姓名 书ISBN 书名 借出时间 应还时间
3 3 2132131 西游记 2022-06-08 09:41:43 2022-07-08 09:41:43
666 程序员小李 3232 数据库设计 2022-06-09 09:56:22 2022-07-09 09:56:22
---------------
--------------
1.学生管理
2.书籍管理
3.图书借阅一览
4.退出
--------------
请选择:
3
学生账号 学生姓名 书ISBN 书名 借出时间 应还时间
3 3 2132131 西游记 2022-06-08 09:41:43 2022-07-08 09:41:43
666 程序员小李 3232 数据库设计 2022-06-09 09:56:22 2022-07-09 09:56:22
---------------
--------------
1.学生管理
2.书籍管理
3.图书借阅一览
4.退出
--------------
请选择:
1
---------------
1.所有学生信息
2.查询学生信息
3.修改学生信息
4.删除学生信息
5.添加学生信息
6.返回
----------------
请选择:
2
请输入学生账号:
666
查询结果如下:
---------------
id 账号 姓名
8 666 程序员小李
---------------
1.所有学生信息
2.查询学生信息
3.修改学生信息
4.删除学生信息
5.添加学生信息
6.返回
----------------
请选择:
1
所有学生信息如下:
id 账号 姓名
1 123456 小红
2 222 小王
4 1 1
6 3 3
7 5 5
8 666 程序员小李
---------------
1.所有学生信息
2.查询学生信息
3.修改学生信息
4.删除学生信息
5.添加学生信息
6.返回
----------------
请选择:
6
--------------
1.学生管理
2.书籍管理
3.图书借阅一览
4.退出
--------------
请选择:
2
----------------
1.所有图书信息
2.添加图书信息
3.删除图书信息
4.修改图书信息
5.返回
----------------
请选择:
1
id isbn 书名 作者 出版社 馆藏数量
1 2132131 西游记 吴承恩 清华 7
2 3232 数据库设计 小A 上海出版社 5
3 43423423 Java进价 小张 深圳出版社 50
6 5 5 5 8 6
------------
----------------
1.所有图书信息
2.添加图书信息
3.删除图书信息
4.修改图书信息
5.返回
----------------
请选择:
5
--------------
1.学生管理
2.书籍管理
3.图书借阅一览
4.退出
--------------
部分程序
数据库连接工具类
package com.tushu.utils;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class ConnDB {// 获取连接通道// Connection public static Connection getConnection() {Connection conn = null;// 1.加载驱动类try {// Mysql驱动Class.forName("com.mysql.cj.jdbc.Driver");// 获取连接通道String url ="jdbc:mysql://localhost:3306/bm?useSSL=false&serverTimezone=Asia/Shanghai";String user = "root";String password = "root";conn = DriverManager.getConnection(url,user,password);} catch (ClassNotFoundException e) {// 1.类名错误 2.外部jar没有引用e.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return conn;}// 关闭资源public static void closeDB(ResultSet rs,Statement pst,Connection conn) {try {if(rs!=null) {rs.close();}if(pst!=null) {pst.close();}if(conn!=null) {conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) {System.out.println(ConnDB.getConnection());}
}
时间获取工具类
package com.tushu.utils;import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;public class TimeTools {public static String getTime() {Date date = new Date();SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");return dateFormat.format(date);}//获取当前时间往后一个月的时间public static String getTime2() {Date date = new Date();Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MONTH, +1);SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");return dateFormat.format(calendar.getTime());}
}
CRUD方法封装类
package com.tushu.dao;
import com.tushu.utils.ConnDB;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;public abstract class BaseDAO {// 共通的增删改方法public int update(String sql,Object[] arr) {Connection conn = ConnDB.getConnection();PreparedStatement pst = null;try {pst = conn.prepareStatement(sql);//对占位符赋值for (int i = 0; i < arr.length; i++) {pst.setObject(i+1, arr[i]);}int row = pst.executeUpdate();return row;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {ConnDB.closeDB(null, pst, conn);}return 0;}// 共通查询public <T>T select(String sql,Object[] arr){Connection conn = ConnDB.getConnection();PreparedStatement pst = null;ResultSet rs = null;T t = null;try {pst= conn.prepareStatement(sql);for (int i = 0; i < arr.length; i++) {pst.setObject(i+1, arr[i]);}rs = pst.executeQuery();// 对结果集的收集if(rs.next()) {// 收集对象的属性t = this.rowMapper(rs);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {ConnDB.closeDB(null, pst, conn);}return t;}// 查询结果集合public <T> List<T> selectAll(String sql,Object[] arr){List<T> list = new ArrayList<>();Connection conn = ConnDB.getConnection();PreparedStatement pst = null;ResultSet rs = null;try {pst= conn.prepareStatement(sql);for (int i = 0; i < arr.length; i++) {pst.setObject(i+1, arr[i]);}rs = pst.executeQuery();T t = null;// 对结果集的收集while(rs.next()) {// 收集对象的属性t = this.rowMapper(rs);// 添加到集合list.add(t);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {ConnDB.closeDB(null, pst, conn);}return list;}// 定义方法 每个查询的结果集获取对应的属性public abstract <T> T rowMapper(ResultSet rs) throws SQLException;
}
篇幅有限,就不在这里展示全部代码了。
完整源码获取:
点击下方公众号链接
微信扫描弹出的二维码关注 编程亿点有趣 公众号,回复关键字 借阅系统 ,即可获取源码。
本次分享到这!!!
下期见!!
拜拜!
数据库课程设计:图书借阅管理系统(控制台交互)相关推荐
- 数据库课程设计——图书管理管理系统(一)
数据库课程设计--图书馆管理系统(一) 1.需求分析 系统的设计目标: Library系统(图书管理系统)是通过本系统软件,能帮助图书馆管理人员利用计算机,快速方便地对图书馆书籍,读者资料,借还书等进 ...
- Java课程设计-图书借阅管理系统
摘要 图书管理工作是每个学校必须面对的工作,如何利用较为先进的技术开发高效.安全.各平台间相互数据共享的信息化平台,也就是设计出稳定.全面.有效的图书借阅管理系统,这就显得尤为重要.文中介绍了图书借阅 ...
- 查询学生选修课程管理系统java_JAVA数据库课程设计学生选课管理系统的
<JAVA数据库课程设计学生选课管理系统的>由会员分享,可在线阅读,更多相关<JAVA数据库课程设计学生选课管理系统的(59页珍藏版)>请在人人文库网上搜索. 1.一.课程设计 ...
- 数据库课程设计-员工信息管理系统(基于python和MySQL实现)
一.项目地址 具体项目相关信息可移步至我的Github查看,那里有整套项目文件以及课程设计报告等,仅供交流学习和参考,如有错误之处请多多指正哦. 二.系统定义 随着计算机技术的不断发展,计算机作为知识 ...
- java 数据库工资管理系统设计_数据库课程设计—企业工资管理系统(java版完整代码)...
数据库课程设计-企业工资管理系统(java版完整代码) 数 据 库 课 程 设 计 报 告2016年 5月 20日 目 录企业工资管理系统姓 名 王 素 文班 级 软 133学 号 139074224 ...
- 计算机数据库课程设计,药品销售管理系统
计算机数据库课程设计,药品销售管理系统 https://x-x.fun/i/Lb0b58c73eUr9
- oracle学生信息管理系统课程设计,数据库课程设计-学生信息管理系统的设计与实现.doc...
数据库课程设计-学生信息管理系统的设计与实现 2011-2012课程设计II 学生信息管理系统的设计与实现 一 设计内容 建立一个简单的在校学生信息查询系统,可以让使用者查询到学生的一些简单的个人信息 ...
- 数据库课程设计--高校机房管理系统
数据库课程设计--题目:机房管理系统 (cs架构)前端 jsp+easyui 后端 java+mysql 环境: Myeclipse 2016-cI-3 mysql-installer-commu ...
- 数据库课程设计超市信息管理系统
目录 一.需求分析 1.系统需求分析描述 1.1.1系统需求说明: 1.1.2系统可行性分析: 1.1.3系统应用范围: 2.系统功能结构图 3.业务流程图 二.概念结构设计 1.实体描述 2.局部E ...
- 数据库课程设计(乐队管理系统)实现增删改查权限设置MVC
为什么要做这个系统呢 这是一个数据库课程设计完成的作品 名字叫做Rainmaple乐队管理系统 首页部分 各种权限用户均可查看 - 简单的轮播 旗下的乐队信息(从数据库中读取) 后台部分 后台入口 简 ...
最新文章
- TCP建立连接与断开连接的过程
- lvs-健康检查方式
- WorldWind Java 版学习:1、启动过程
- win10下TensorFlow-GPU安装(GTX1660+CUDA10+CUDNN7.4)
- 1.php查询数据,数据查询 · thinkphp5 · 看云
- WCF Transaction
- bzoj3390[Usaco2004 Dec]Bad Cowtractors牛的报复*
- 矢量字体合并《注意事项》
- 23位子网掩码是多少_23位子网掩码包含哪几个网段
- IBM出手 蓝色巨人收购蓝色巨狼
- 为静态照片添加动画表情的iOS应用MugLife来了,网友惊呼「这技术等着被收购吧」
- Unity_7 如何使用遮挡剔除Occlusion Culling
- java调用腾讯地图根据经纬度获取位置信息
- rep论文阅读2:ResRep_Lossless CNN Pruning via Decoupling Remembering and Forgetting
- 光环国际20周年庆六城联动峰会「北京场」圆满结束!
- 服务器系统盘40g是什么,云服务器 40g系统盘
- 在window下查看占用tomcat进程,杀死进程并启用tomcat
- 十四、Nginx--rewrite规则
- 经典VU仪表的混音效果工具
- onecore\com\combase\dcomrem\channelb.cxx(6563)\combase.dll!76A59D9F: (caller: 75A95B54) ReturnHr(1)