Java无数据库|MySQL的图书管理系统
前言
没有使用数据库,没有使用JDBC 单纯的拿列表开发的一个图书管理系统,主要目的在于练习java一些基础的知识,感兴趣的可以下载代码了解一下。
提醒
这个是基于列表的增删改查,列表是在运行的时候会保存数据,但是当程序结束后,一切有恢复原来的模样,在写这个最简单的图书管理系统,用的是简化版的三层架构,为了之后完善方便。
三层架构可以非常快速的将这个系统修改成使用数据库版本,达到真正的存储数据。
软件界面
目录结构
dao 数据层
- Book 存放图书属性
- ListBook 主要的列表存储功能都在这里
service 业务层
xxxxxxxxxx public static void main(String[] args){ Map map = new HashMap(); //定义Map对象 map.put(“apple”,”新鲜的苹果”); //向集合中添加对象 map.put(“computer”,”配置优良的计算机”); map.put(“book”,”堆积成山的图书”); map.put(“time”,new Date()); String key = “book”; boolean contains=map.containsKey(key); //判断是否包含指定的键值 if(contains){ //如果条件为真 System.out.println(“在Map集合中包含键名”+key); //输出信息 }else{ System.out.println(“在Map集合中不包含键名”+key); }}java
Delete 删除图书
Updata 修改图书
view 视图层
- Index 欢迎界面
- Login 登录界面 账号admin 密码 123456
- Ui 主界面
实现功能
(1)添加书籍。
(2)下架书籍。
(3)修改书籍 可修改书名、作者、出版社、出版时间。
(4)借阅书籍。
(5)归还书籍。
(6)查询书籍。
(7)查询日志。
(8)退出程序。
逻辑判断特色
(1)在图书外借的时候不能下架书籍。
(2)已经拥有的图书,不能再继续添加。
(3)字符串验证,输入字符串的时候不会导致程序终止。
(4)登录出错不会中断程序。
(5)借走的书籍不能再借。实现功能
截图演示
2023.3.16更新
1.本次更新加入了日志记录,可以查询用户干了什么,以及图书最重要的功能 借书和还书,以及修复了一些bug;
2.新增加的类
- Listlog.java
- Log.java
- Inbook.java
- Outbook.java
3.增加了数字验证,输入字符串的时候不会导致程序终止。
4.增加了图书重名验证
2023.3.17 更新
1.修复登录错误程序结束。
2.增加逻辑判断
- 在图书外借的时候不能下架书籍。
- 已经拥有的图书,不能再继续添加
- 增强程序的健壮性
2023.3.20 更新
- 修复删除后借阅书籍列表出界问题
- 增加修改书籍数字验证
- 增加书籍id显示
2023.3.30增加jdbc链接数据库
使用jdbc去对接的话,需要重新构建CRUD 这样难免会花费很长的时间。
为了快速的修改成使用JDBC连接的MySQL,没有改动列表的那些存储,而是把列表整体的存储进去,访问的速度会慢很多,但是学习期间不需要考虑大数量的表查询。
添加jar包
对于ListBook进行改动,增加三个方法,去掉列表初始化
查询book表所有信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33public static void read() throws SQLException, ClassNotFoundException{
String url = "jdbc:mysql://localhost:3306/book";
String username = "root";
String password = "root";
// 1. 加载 JDBC 驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 获取数据库连接对象
Connection conn = DriverManager.getConnection(url, username, password);
// 3. 创建 Statement 对象
Statement stmt = conn.createStatement();
// 4. 执行 SQL 查询语句
String sql = "SELECT * FROM book";
ResultSet rs = stmt.executeQuery(sql);
// 5. 处理查询结果集
while (rs.next()) {
Book book = new Book(rs.getInt("id"),rs.getString("bookname"),rs.getString("author"),rs.getString("print"), rs.getString("pubdata"),rs.getString("state"),rs.getInt("count"));
listbook.add(book);
}
rs.close();
stmt.close();
conn.close();
for (Book book : listbook) {
String string = book.toString();
System.out.println(string);
}
}更新book表数据
1 | public static void updata() throws ClassNotFoundException, SQLException { |
插入book表数据
1 | public static void add(int j) throws ClassNotFoundException, SQLException { |
后续更新
这个项目目前就结束到这里了,日志和用户也非常好增加,以后有时间再弄