《Java基础案例教程》第十三章大作业(第13章图书管理系统bookmanager)

《Java基础案例教程》第十三章大作业

在这里插入图片描述
提示:jdk版本书本内推荐jdk1.8.0_333 (给个下载方法传送门:http://t.csdn.cn/iJHI8)
推荐的sql的jar文件版本5.1.38(给个下载方法传送门:http://t.csdn.cn/Pm6gG)
以上版本比它新的应该都是可以的,我没试过
jdk版本默认安装就行,jar最好放桌面,后面要用

1. java代码,可以扫书本后面的二维码下载,包括sql代码也在里面

在这里插入图片描述

2.没法下载的,我在最后提供代码

3.这里开始教学怎么正确运行图书管理器

(1)修改jdk版本:

在这里插入图片描述
右键文件夹,打开模块设置
在这里插入图片描述
选择1.8版本的路径,软件识别不了你刚刚下的jdk版本的同学,自己搜一下解决方法

(2)修改jar包:

在这里插入图片描述
找到这个文件夹里的mysql-connector-java.jar这个文件
在这里插入图片描述
把你刚刚下载的jar包的版本替换过来
按道理,只要这个jar包跟你的mysql版本一致或者更高就能成功运行

(3)修改java代码内容:

在这里插入图片描述
在这个类中
在这里插入图片描述
修改用户名和密码即可(默认密码为123456,如果你的sql密码忘记了,直接重装吧,反正大学生的数据库本来就没有重要的东西,改密码很麻烦的 )

(4)创建sql表(推荐使用sqlyog这个软件win+r也行)

在这里插入图片描述
这是书本扫码下的东西,sql那个用记事本打开,
这里我用sqlyog来做:
在这里插入图片描述
首先创建一个bookmannager的库
然后把把记事本里的全部代码复制黏贴到运行框
在这里插入图片描述
全部一起运行,没报错就行
刷新一下
在这里插入图片描述
看到有四个表说明成功了,然后打开user这个表
在这里插入图片描述
role这一列是1的就是普通账户,是2的就是管理员账户,软件里面可以注册新的

(4)打开软件的方法:运行下面这个类就行了

在这里插入图片描述

(5)如果这个作业要交,而且不能每人都一样,可以改背景图

在这里插入图片描述
JFrame这个软件包内的代码里面有背景图的代码,改这个就行
然后放图片的位置是:
在这里插入图片描述
用压缩方式打开即可

以下提供代码

java代码:书上有,看着打吧,我弄上来很累。。。。。。。。
sql代码:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book`  (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `book_name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `type_id` INT(11) NULL DEFAULT NULL,
  `author` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `publish` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `price` DOUBLE(10, 2) NULL DEFAULT NULL,
  `number` INT(11) NULL DEFAULT NULL,
  `status` INT(11) NULL DEFAULT 1 COMMENT '状态 1上架0下架',
  `remark` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = INNODB AUTO_INCREMENT = 16 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;

-- ----------------------------
-- Records of book
-- ----------------------------
INSERT INTO `book` VALUES (4, '西游记', 3, '吴承恩', '机械工业出版社', 23.00, 213, 1, '四大名著之一');
INSERT INTO `book` VALUES (6, 'SpringCloud微服务架构开发', 1, '黑马程序员', '人民邮电出版社', 28.00, 20, 1, '微服务实战开发');
INSERT INTO `book` VALUES (7, '水浒传', 3, '施耐庵 ', '人民文学出版社', 29.00, 30, 1, '四大名著之一');
INSERT INTO `book` VALUES (8, 'Java基础入门(第2版)', 1, '黑马程序员', '清华大学出版社', 30.20, 22, 1, '提高Java编程功底必备');
INSERT INTO `book` VALUES (9, '中国文学编年史', 2, '陈文新', '湖南人民出版社', 35.30, 36, 1, '中国文学编年史');
INSERT INTO `book` VALUES (10, 'JavaWeb程序设计任务教程', 1, '黑马程序员', '人民邮电出版社', 25.50, 16, 1, '学习JavaWeb的好帮手');
INSERT INTO `book` VALUES (11, 'SSH框架整合实战教程', 1, '传智播客高教产品研发部', '清华大学出版社', 59.00, 12, 1, 'SSH项目开发实战');
INSERT INTO `book` VALUES (12, '朝花夕拾', 3, '鲁迅', '辽海出版社', 44.60, 30, 1, '鲁迅小说全集系列');
INSERT INTO `book` VALUES (13, '彷徨', 3, '鲁迅', '辽海出版社', 44.60, 16, 1, '鲁迅小说全集系列');
INSERT INTO `book` VALUES (14, '呐喊', 3, '鲁迅', '辽海出版社', 44.50, 16, 1, '鲁迅小说全集系列');
INSERT INTO `book` VALUES (15, '阿Q正传', 3, '鲁迅', '辽海出版社', 29.00, 33, 1, '鲁迅小说全集系列');

-- ----------------------------
-- Table structure for book_type
-- ----------------------------
DROP TABLE IF EXISTS `book_type`;
CREATE TABLE `book_type`  (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `type_name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `remark` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = INNODB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;

-- ----------------------------
-- Records of book_type
-- ----------------------------
INSERT INTO `book_type` VALUES (1, '技术', '技术类');
INSERT INTO `book_type` VALUES (2, '人文', '人文类');
INSERT INTO `book_type` VALUES (3, '小说', '人生情感小说');

-- ----------------------------
-- Table structure for borrowdetail
-- ----------------------------
DROP TABLE IF EXISTS `borrowdetail`;
CREATE TABLE `borrowdetail`  (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `user_id` INT(11) NOT NULL,
  `book_id` INT(11) NOT NULL,
  `status` INT(11) NOT NULL COMMENT '状态  1在借2已还',
  `borrow_time` BIGINT(20) NULL DEFAULT NULL,
  `return_time` BIGINT(20) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = INNODB AUTO_INCREMENT = 27 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;

-- ----------------------------
-- Records of borrowdetail
-- ----------------------------
INSERT INTO `borrowdetail` VALUES (1, 1, 2, 2, 1546414916391, 1546414948498);
INSERT INTO `borrowdetail` VALUES (2, 1, 3, 2, 1546414932877, 1556417443285);
INSERT INTO `borrowdetail` VALUES (3, 1, 2, 2, 1546416530026, 1546416640210);
INSERT INTO `borrowdetail` VALUES (4, 1, 1, 2, 1546565100120, 1556334334816);
INSERT INTO `borrowdetail` VALUES (5, 1, 4, 1, 1546565102870, NULL);
INSERT INTO `borrowdetail` VALUES (6, 3, 1, 2, 1546565519776, 1556207839074);
INSERT INTO `borrowdetail` VALUES (7, 3, 4, 1, 1546565522374, NULL);
INSERT INTO `borrowdetail` VALUES (8, 1, 1, 1, 1556427836809, NULL);
INSERT INTO `borrowdetail` VALUES (9, 4, 3, 1, 1556433544156, NULL);
INSERT INTO `borrowdetail` VALUES (10, 7, 5, 1, 1556503388763, NULL);
INSERT INTO `borrowdetail` VALUES (11, 8, 5, 2, 1556507260569, 1556507349243);
INSERT INTO `borrowdetail` VALUES (12, 8, 13, 1, 1556507333043, NULL);
INSERT INTO `borrowdetail` VALUES (13, 8, 14, 1, 1556507390633, NULL);
INSERT INTO `borrowdetail` VALUES (14, 5, 4, 2, 1556523317389, 1556523338061);
INSERT INTO `borrowdetail` VALUES (15, 5, 12, 1, 1556523321541, NULL);
INSERT INTO `borrowdetail` VALUES (16, 5, 13, 2, 1556523324149, 1556535561206);
INSERT INTO `borrowdetail` VALUES (17, 5, 10, 1, 1556535626582, NULL);
INSERT INTO `borrowdetail` VALUES (18, 5, 8, 2, 1556535629488, 1556585064182);
INSERT INTO `borrowdetail` VALUES (19, 5, 6, 1, 1556539744896, NULL);
INSERT INTO `borrowdetail` VALUES (20, 1, 5, 1, 1556539946226, NULL);
INSERT INTO `borrowdetail` VALUES (21, 9, 2, 2, 1556583833816, 1556583847518);
INSERT INTO `borrowdetail` VALUES (22, 9, 7, 1, 1556583838018, NULL);
INSERT INTO `borrowdetail` VALUES (23, 5, 14, 1, 1556585092996, NULL);
INSERT INTO `borrowdetail` VALUES (24, 5, 11, 1, 1556585100866, NULL);
INSERT INTO `borrowdetail` VALUES (25, 1, 12, 1, 1556845403233, NULL);
INSERT INTO `borrowdetail` VALUES (26, 11, 2, 2, 1561804768359, 1561804772616);

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `password` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `role` INT(255) NULL DEFAULT NULL COMMENT '角色  1学生 2管理员',
  `sex` VARCHAR(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `phone` CHAR(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = INNODB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'xkj', 'xkj123', 1, '男', '13195648799');
INSERT INTO `user` VALUES (2, 'admin', '111111', 2, '男', '13198645975');
INSERT INTO `user` VALUES (3, '徐某人', 'xkj123', 1, '女', '13195648529');
INSERT INTO `user` VALUES (4, '肖淼', 'sdf78978', 1, '女', '13195698458');
INSERT INTO `user` VALUES (5, '张军伟', 'zjw520', 1, '女', '13195689458');
INSERT INTO `user` VALUES (6, '杨帆', 'dfd757', 1, '女', '15246598568');
INSERT INTO `user` VALUES (7, '九头蛇', 'kkk111', 1, '男', '13194959879');
INSERT INTO `user` VALUES (8, '蔡佳铭', 'cjm7418', 1, '女', '13164649855');
INSERT INTO `user` VALUES (9, '杨飞龙', 'kj12345', 1, '男', '13195864589');
INSERT INTO `user` VALUES (11, 'javaniu', '111111', 1, '男', '13520109203');

SET FOREIGN_KEY_CHECKS = 1;

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,我可以为您提供一些Java图书管理系统大作业思路,并加上注释,帮助您更好地理解代码实现。 首先,我们需要定义一个Book类,用来存储图书的信息。 ```java public class Book { private String title; // 书名 private String author; // 作者 private String publisher; // 出版社 private String pubDate; // 出版日期 private String ISBN; // ISBN号 private double price; // 价格 // 构造函数 public Book(String title, String author, String publisher, String pubDate, String ISBN, double price) { this.title = title; this.author = author; this.publisher = publisher; this.pubDate = pubDate; this.ISBN = ISBN; this.price = price; } // getter和setter方法 public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getPublisher() { return publisher; } public void setPublisher(String publisher) { this.publisher = publisher; } public String getPubDate() { return pubDate; } public void setPubDate(String pubDate) { this.pubDate = pubDate; } public String getISBN() { return ISBN; } public void setISBN(String ISBN) { this.ISBN = ISBN; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } } ``` 接下来,我们定义一个BookManager类,用来管理图书信息。在这个类中,我们使用ArrayList来存储所有的图书信息。 ```java import java.util.ArrayList; public class BookManager { private ArrayList<Book> bookList; // 构造函数 public BookManager() { bookList = new ArrayList<Book>(); } // 添加图书 public void addBook(Book book) { bookList.add(book); } // 删除图书 public void removeBook(Book book) { bookList.remove(book); } // 查询图书 public ArrayList<Book> searchBook(String keyword) { ArrayList<Book> result = new ArrayList<Book>(); for (Book book : bookList) { if (book.getTitle().contains(keyword) || book.getAuthor().contains(keyword) || book.getPublisher().contains(keyword)) { result.add(book); } } return result; } } ``` 接下来,我们可以使用Swing库来实现GUI界面。 ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; public class BookGUI extends JFrame implements ActionListener { private JTextField searchField; private JTextArea resultArea; private JButton addButton; private JButton removeButton; private BookManager bookManager; // 构造函数 public BookGUI() { bookManager = new BookManager(); // 设置窗口标题 setTitle("图书管理系统"); // 设置窗口大小 setSize(500, 400); // 设置窗口位置 setLocationRelativeTo(null); // 设置窗口关闭时的操作 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建主面板 JPanel mainPanel = new JPanel(new BorderLayout()); // 创建顶部面板 JPanel topPanel = new JPanel(new FlowLayout()); // 创建搜索框和搜索按钮 searchField = new JTextField(20); JButton searchButton = new JButton("搜索"); // 添加搜索框和搜索按钮到顶部面板 topPanel.add(searchField); topPanel.add(searchButton); // 创建结果区域 resultArea = new JTextArea(); // 创建底部面板 JPanel bottomPanel = new JPanel(new FlowLayout()); // 创建添加按钮和删除按钮 addButton = new JButton("添加"); removeButton = new JButton("删除"); // 添加添加按钮和删除按钮到底部面板 bottomPanel.add(addButton); bottomPanel.add(removeButton); // 添加顶部面板、结果区域和底部面板到主面板 mainPanel.add(topPanel, BorderLayout.NORTH); mainPanel.add(new JScrollPane(resultArea), BorderLayout.CENTER); mainPanel.add(bottomPanel, BorderLayout.SOUTH); // 添加主面板到窗口 add(mainPanel); // 添加监听器 searchButton.addActionListener(this); addButton.addActionListener(this); removeButton.addActionListener(this); } // 监听器方法 public void actionPerformed(ActionEvent e) { if (e.getSource() == addButton) { // 添加图书 // TODO } else if (e.getSource() == removeButton) { // 删除图书 // TODO } else { // 查询图书 String keyword = searchField.getText(); ArrayList<Book> result = bookManager.searchBook(keyword); // 显示查询结果 resultArea.setText(""); for (Book book : result) { resultArea.append(book.getTitle() + " - " + book.getAuthor() + " - " + book.getPublisher() + " - " + book.getPubDate() + " - " + book.getISBN() + " - " + book.getPrice() + "\n"); } } } // 主函数 public static void main(String[] args) { // 创建GUI界面 BookGUI bookGUI = new BookGUI(); // 显示GUI界面 bookGUI.setVisible(true); } } ``` 总之,Java图书管理系统大作业需要您综合运用Java SE平台的GUI组件和面向对象编程思想,设计出一个功能完善、界面美观的图书管理系统。希望这些代码和注释可以帮助到您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值