您现在的位置是:主页 > news > 太原网站建设需要多少钱/线上营销

太原网站建设需要多少钱/线上营销

admin2025/4/29 8:31:04news

简介太原网站建设需要多少钱,线上营销,相亲网站怎么做的,网站域名空间一年费用是多少钱图书馆管理系统(数据库版) 由于之前那次的图书馆管理系统是只使用了I/O进行数据的交互,所以在学习完数据库与JDBC后便开始了对图书馆管理系统的重构,完成了这版利用MySQL数据库存储数据的图书馆管理系统。 文章目录图书馆管理系统…

太原网站建设需要多少钱,线上营销,相亲网站怎么做的,网站域名空间一年费用是多少钱图书馆管理系统(数据库版) 由于之前那次的图书馆管理系统是只使用了I/O进行数据的交互,所以在学习完数据库与JDBC后便开始了对图书馆管理系统的重构,完成了这版利用MySQL数据库存储数据的图书馆管理系统。 文章目录图书馆管理系统…

图书馆管理系统(数据库版)

由于之前那次的图书馆管理系统是只使用了I/O进行数据的交互,所以在学习完数据库与JDBC后便开始了对图书馆管理系统的重构,完成了这版利用MySQL数据库存储数据的图书馆管理系统。


文章目录

  • 图书馆管理系统(数据库版)
  • 项目框架
  • 项目分包
  • 数据库表
  • 自我认为好用的一些方法
    • 手机号码判断
    • int输入类型判断
    • 书籍ID限定


项目框架

项目框架

具体要求与上次的项目一样,这次只是利用所学的数据库知识和三层架构来构建项目。


项目分包

项目分包

符合三层架构思想,利用SSM框架,分为dao(数据访问层)、entity(实体层)、service(服务层)、util(工具类)、view(视图层)。


数据库表

建立四张表
四张表
admin表,存放管理员的信息
admin表
books表,存放书籍信息
books表
borrow表,存放借还数时间,也是日志表
borrow表
user表,存放用户个人信息
user表
这是MySQL的建表SQL语句,可以直接导入

/*Navicat MySQL Data TransferSource Server         : LibrarySystemGit_DownloadSource Server Type    : MySQLSource Server Version : 80024Source Host           : localhost:3306Source Schema         : db_booksTarget Server Type    : MySQLTarget Server Version : 80024File Encoding         : 65001Date: 29/06/2021 15:54:38
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for db_admin
-- ----------------------------
DROP TABLE IF EXISTS `db_admin`;
CREATE TABLE `db_admin`  (`admin_id` int UNSIGNED NOT NULL AUTO_INCREMENT,`admin_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,PRIMARY KEY (`admin_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of db_admin
-- ----------------------------
INSERT INTO `db_admin` VALUES (1, 'root', 'root');-- ----------------------------
-- Table structure for db_books
-- ----------------------------
DROP TABLE IF EXISTS `db_books`;
CREATE TABLE `db_books`  (`book_id` int UNSIGNED NOT NULL AUTO_INCREMENT,`ISBN` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`book_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`book_price` decimal(10, 2) NULL DEFAULT NULL,`book_author` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`published_house` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`book_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`book_state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '未借出',PRIMARY KEY (`book_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of db_books
-- ----------------------------
INSERT INTO `db_books` VALUES (1, '978-7-100-10618-4', '《如何阅读一本书》', 56.00, '(美) 莫提默·J. 艾德勒, 查尔斯·范多伦', '商务印书馆', '教育', '未借出');
INSERT INTO `db_books` VALUES (2, '978-7-111-29544-0', '《设计模式之禅》', 69.00, '秦小波', '机械工业出版社', '教育', '未借出');
INSERT INTO `db_books` VALUES (3, '978-7-115-21687-8', '《代码整洁之道》', 59.00, '(美)Robert C. Martin', '人民邮电出版社', '教育', '未借出');
INSERT INTO `db_books` VALUES (4, '978-7-300-11134-6', '《金融学》', 59.00, '兹维·博迪', '中国人民大学出版社', '教育', '未借出');
INSERT INTO `db_books` VALUES (5, '978-7-302-23755-6', '《Java程序设计实践教程》', 36.00, '颜志军, 栾媛媛', '人民邮电出版社', '教育', '未借出');
INSERT INTO `db_books` VALUES (6, '978-7-302-27544-2', '《C语言程序设计》', 29.00, '李爱玲', '机械工业出版社', '教育', '未借出');
INSERT INTO `db_books` VALUES (7, '978-7-302-29391-0', '《网络安全技术》', 34.50, '曾湘黔', '清华大学出版社', '教育', '未借出');
INSERT INTO `db_books` VALUES (8, '978-7-5117-0157-2', '《傲慢与偏见》', 16.00, '(英) 简·奥斯汀', '中央编译出版社', '外国文学', '未借出');
INSERT INTO `db_books` VALUES (9, '978-7-5327-5110-5', '《悲惨世界》', 58.00, '(法)雨果', '上海译文出版社', '外国文学', '未借出');
INSERT INTO `db_books` VALUES (10, '978-7-5399-3321-4', '《纳兰容若词传》', 28.50, '苏缨, 毛晓雯, 夏如意', '江苏文艺出版社', '人物传记', '未借出');
INSERT INTO `db_books` VALUES (11, '978-7-5399-5488-2', '《瓦尔登湖 : 梭罗散文选》', 34.00, '(美) 梭罗', '江苏文艺出版社', '外国文学', '未借出');
INSERT INTO `db_books` VALUES (12, '978-7-5101-3674-0', '《三国演义》', 23.00, '(明) 罗贯中', '人民文学出版社', '古典名著', '未借出');
INSERT INTO `db_books` VALUES (13, '978-7-0200-1501-6', '《水浒传》', 15.75, '(明) 施耐庵', '人民文学出版社', '古典名著', '未借出');
INSERT INTO `db_books` VALUES (14, '978-7-0200-0220-7', '《红楼梦》', 59.70, '(清) 曹雪芹', '人民文学出版社', '古典名著', '未借出');
INSERT INTO `db_books` VALUES (15, '978-7-1011-0452-3', '《西游记》', 80.00, '(明) 吴承恩', '中华书局', '古典名著', '未借出');-- ----------------------------
-- Table structure for db_borrow
-- ----------------------------
DROP TABLE IF EXISTS `db_borrow`;
CREATE TABLE `db_borrow`  (`borrow_id` int UNSIGNED NOT NULL AUTO_INCREMENT,`book_id` int NOT NULL,`user_id` int NOT NULL,`borrow_time` date NOT NULL,`return_time` date NULL DEFAULT NULL,PRIMARY KEY (`borrow_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of db_borrow
-- ------------------------------ ----------------------------
-- Table structure for db_user
-- ----------------------------
DROP TABLE IF EXISTS `db_user`;
CREATE TABLE `db_user`  (`user_id` int UNSIGNED NOT NULL AUTO_INCREMENT,`user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`sex` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '男',`phonenumber` bigint(11) UNSIGNED ZEROFILL NULL DEFAULT NULL,`type` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '学生',PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of db_user
-- ----------------------------
INSERT INTO `db_user` VALUES (1, '张三', '123456', '男', NULL, '学生');SET FOREIGN_KEY_CHECKS = 1;

自我认为好用的一些方法

手机号码判断

传入用户输入的手机号码,判断手机号码是否符合十一位的格式,返回Boolean格式

//电话判断方法public static boolean validateMobilePhone(String in) {Pattern pattern = Pattern.compile("^[1]\\d{10}$");return pattern.matcher(in).matches();}//电话号码判断使用
System.out.println("请输入您的电话(电话号码为11位):");String phone = scanner.next();while (!validateMobilePhone(phone)){System.out.println("输入错误,请重新输入(电话号码为11位)");phone = scanner.next();}

int输入类型判断

在控制台菜单选择输入数字时,要做好输入判断,保证输入为数字,所以进行输入类型判断

//int类型输入判断public int input() {while (!scanner.hasNextInt()) {//没有这一行的话会导致无限循环String input = scanner.next();System.out.println("不是数字,重新输入");}//当是数字时循环结束int inputNum = scanner.nextInt();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;}//上面两个方法可嵌套使用,操作输入判断int op = input.scope(input.input(),4);//这样既能判断输入限定为int类型,又可以输入范围限定

书籍ID限定

由于在数据库中,books表的主键是id,所以可以存储多本重复书籍,用id来区分所要借阅的书籍,并在借书时不显示已被借阅的书籍

//书籍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();//输入id,与其对比//增强for,遍历并对比输入的idfor (Integer e : borrowedId){if (book_id == e){flag = false;}}if (flag){System.out.println("书籍Id输入错误,请重新输入:");}}return book_id;}

以上方法肯定还有优化空间,还请大佬有新意见可以来指点我一下,谢谢!


图书馆管理系统项目包已上传,可以直接下载。

代码做过bug的检查,但若是还有bug存在,或是其他问题存在,请在评论区指出,我会尽力修改。