From 02cb5e6c9dd85d7018756c9bbb5c0bb4e5f0ce5c Mon Sep 17 00:00:00 2001 From: Sakura <2337674687@qq.com> Date: Mon, 10 Mar 2025 10:33:36 +0800 Subject: [PATCH 1/2] 3.10 --- .../com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java b/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java index fa63991..19956e5 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java @@ -55,7 +55,7 @@ public class WrongQuestionDaoImpl implements WrongQuestionDao { "q.title, " + "q.question_id, " + "q.type, " + - "JSON_ARRAYAGG(CAST(qo.option_value AS CHAR CHARACTER SET utf8mb4)) AS optionStr " + + "JSON_ARRAYAGG(qo.option_value) AS optionStr " + "FROM " + "question q " + "LEFT JOIN question_option qo ON q.question_id = qo.question_id " + @@ -80,7 +80,7 @@ public class WrongQuestionDaoImpl implements WrongQuestionDao { question.setQuestion_id(rs.getInt("question_id")); question.setTitle(rs.getString("title")); question.setType(rs.getInt("type")); - System.out.println("123"+rs.getString("optionStr")); +// System.out.println("123"+rs.getString("optionStr")); question.setOptionArr(rs.getString("optionStr")); questions.add(question); } -- Gitee From 97c54ac7b561f70a3d72fa580a408dcfa9dd17c0 Mon Sep 17 00:00:00 2001 From: Sakura <2337674687@qq.com> Date: Mon, 10 Mar 2025 15:01:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?3.10=E4=B8=AD=E6=96=87=E4=B9=B1=E7=A0=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/dao/impl/QuestionDaoImpl.java | 44 +++++--- .../dao/impl/WrongQuestionDaoImpl.java | 42 +++++--- homework-3.9.sql => homework3-10.sql | 101 +++--------------- 3 files changed, 71 insertions(+), 116 deletions(-) rename homework-3.9.sql => homework3-10.sql (63%) diff --git a/HomeWork-java/src/com/wetoband/template/dao/impl/QuestionDaoImpl.java b/HomeWork-java/src/com/wetoband/template/dao/impl/QuestionDaoImpl.java index d8baf28..20427a4 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/QuestionDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/QuestionDaoImpl.java @@ -13,18 +13,38 @@ public class QuestionDaoImpl implements QuestionDao { @Override public ArrayList getQuestion(Connection connection, int homework_id) throws Exception { ArrayList questions = new ArrayList<>(); - String sql = "SELECT q.title, " + - "q.question_id, " + - "q.type, " + - "JSON_ARRAYAGG(qo.option_value) AS optionStr " + - "FROM question q " + - "LEFT JOIN question_option qo " + - "ON q.question_id = qo.question_id " + - "WHERE q.question_id IN ( " + - "SELECT hq.question_id " + - "FROM homework_question hq " + - "WHERE hq.homework_id = ? ) " + - "GROUP BY q.question_id;"; +// String sql = "SELECT q.title, " + +// "q.question_id, " + +// "q.type, " + +// "JSON_ARRAYAGG(qo.option_value) AS optionStr " + +// "FROM question q " + +// "LEFT JOIN question_option qo " + +// "ON q.question_id = qo.question_id " + +// "WHERE q.question_id IN ( " + +// "SELECT hq.question_id " + +// "FROM homework_question hq " + +// "WHERE hq.homework_id = ? ) " + +// "GROUP BY q.question_id;"; + String sql = "SELECT" + + " q.title," + + " q.question_id," + + " q.type," + + " CONCAT(" + + " '['," + + " GROUP_CONCAT(" + + " CONCAT('\"', REPLACE(qo.option_value, '\"', '\\\"'), '\"')" + + " ORDER BY qo.option_num" + + " SEPARATOR ','" + + " )," + + " ']'" + + " ) AS optionStr " + + " FROM" + + " question q" + + " LEFT JOIN question_option qo ON q.question_id = qo.question_id " + + " WHERE" + + " q.question_id IN (SELECT hq.question_id FROM homework_question hq WHERE hq.homework_id = ?) " + + " GROUP BY" + + " q.question_id;"; try (PreparedStatement pstm = connection.prepareStatement(sql)) { pstm.setInt(1, homework_id); try (ResultSet rs = pstm.executeQuery()) { diff --git a/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java b/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java index 19956e5..315d879 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java @@ -51,26 +51,36 @@ public class WrongQuestionDaoImpl implements WrongQuestionDao { public List getWrongQuestion(Connection connection, int homework_id , int student_id) throws Exception { ArrayList questions = new ArrayList<>(); + String sql = "SELECT " + - "q.title, " + - "q.question_id, " + - "q.type, " + - "JSON_ARRAYAGG(qo.option_value) AS optionStr " + - "FROM " + - "question q " + - "LEFT JOIN question_option qo ON q.question_id = qo.question_id " + - "WHERE " + - "q.question_id IN ( " + - "SELECT " + - "hwq.question_id " + + " q.title, " + + " q.question_id, " + + " q.type, " + + " CONCAT( " + + " '[', " + + " GROUP_CONCAT( " + + " CONCAT('\"', REPLACE(qo.option_value, '\"', ''), '\"') " + + " ORDER BY qo.option_num " + + " SEPARATOR ',' " + + " ), " + + " ']' " + + " ) AS optionStr " + "FROM " + - "homework_wrongquestion hwq " + + " question q " + + " LEFT JOIN question_option qo ON q.question_id = qo.question_id " + "WHERE " + - "homework_id = ? AND " + - "student_id = ? " + - ") " + + " q.question_id IN ( " + + " SELECT " + + " hwq.question_id " + + " FROM " + + " homework_wrongquestion hwq " + + " WHERE " + + " homework_id = ? AND " + + " student_id = ? " + + " ) " + "GROUP BY " + - "q.question_id;"; + " q.question_id;"; + try (PreparedStatement pstm = connection.prepareStatement(sql)) { pstm.setInt(1, homework_id); pstm.setInt(2, student_id); diff --git a/homework-3.9.sql b/homework3-10.sql similarity index 63% rename from homework-3.9.sql rename to homework3-10.sql index 50cb3e8..82774d6 100644 --- a/homework-3.9.sql +++ b/homework3-10.sql @@ -11,46 +11,12 @@ Target Server Version : 50742 File Encoding : 65001 - Date: 09/03/2025 21:06:55 + Date: 10/03/2025 15:00:35 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; --- ---------------------------- --- Table structure for Troubleshooting --- ---------------------------- -DROP TABLE IF EXISTS `Troubleshooting`; -CREATE TABLE `Troubleshooting` ( - `troubleshooting_id` int(11) NOT NULL AUTO_INCREMENT, - `question_id` int(11) NOT NULL, - `homework_id` int(11) NOT NULL, - `submit_time` date NULL DEFAULT NULL, - `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, - `solveStatus` tinyint(1) NULL DEFAULT NULL, - `solveContent` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, - `solveTime` date NULL DEFAULT NULL, - `teacher_id` int(11) NOT NULL, - `student_id` int(11) NOT NULL, - PRIMARY KEY (`troubleshooting_id`) USING BTREE, - INDEX `homework_id`(`homework_id`) USING BTREE, - INDEX `student_id`(`student_id`) USING BTREE, - CONSTRAINT `Troubleshooting_ibfk_2` FOREIGN KEY (`homework_id`) REFERENCES `homework` (`homework_id`) ON DELETE CASCADE ON UPDATE RESTRICT, - CONSTRAINT `Troubleshooting_ibfk_3` FOREIGN KEY (`student_id`) REFERENCES `student` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, - CONSTRAINT `Troubleshooting_ibfk_4` FOREIGN KEY (`student_id`) REFERENCES `student` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT -) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of Troubleshooting --- ---------------------------- -INSERT INTO `Troubleshooting` VALUES (1, 1, 1, NULL, '好难啊,不想玩了', NULL, NULL, NULL, 1, 1); -INSERT INTO `Troubleshooting` VALUES (2, 2, 2, NULL, '好难啊,不想玩了', NULL, NULL, NULL, 1, 2); -INSERT INTO `Troubleshooting` VALUES (3, 3, 1, NULL, '好难啊,不想玩了1', NULL, NULL, NULL, 1, 1); -INSERT INTO `Troubleshooting` VALUES (4, 4, 1, NULL, '不会做', NULL, NULL, NULL, 1, 1); -INSERT INTO `Troubleshooting` VALUES (5, 5, 1, NULL, '2432', NULL, NULL, NULL, 1, 1); -INSERT INTO `Troubleshooting` VALUES (11, 1, 1, NULL, 'test', NULL, NULL, NULL, 1, 1); -INSERT INTO `Troubleshooting` VALUES (12, 1, 1, NULL, 'uu、', NULL, NULL, NULL, 1, 1); - -- ---------------------------- -- Table structure for homework -- ---------------------------- @@ -65,9 +31,6 @@ CREATE TABLE `homework` ( `course_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `teacher_id` int(11) NULL DEFAULT NULL, `answer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, - `ungraded` int(200) NULL DEFAULT NULL, - `unsubmitted` int(200) NULL DEFAULT NULL, - `submit` int(200) NULL DEFAULT NULL, PRIMARY KEY (`homework_id`) USING BTREE, INDEX `teacher_id`(`teacher_id`) USING BTREE, CONSTRAINT `homework_ibfk_2` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT @@ -76,10 +39,10 @@ CREATE TABLE `homework` ( -- ---------------------------- -- Records of homework -- ---------------------------- -INSERT INTO `homework` VALUES (1, 1, '第一章', '2025-01-30 17:24:39', '2025-01-09 17:24:31', '第一章', '化学', 1, '10', 13, 22, 33); -INSERT INTO `homework` VALUES (2, 1, '第二章', '2025-01-30 17:24:39', '2025-01-20 17:28:12', '第二章', '物理1', 1, '13', 12, 22, 33); -INSERT INTO `homework` VALUES (3, 2, '第三章', '2025-01-15 10:22:00', '2025-02-05 17:15:02', '作业2', '物理', 1, '15', 11, 11, 11); -INSERT INTO `homework` VALUES (4, 1, '第四章', '2025-02-12 17:15:20', '2025-02-11 17:15:52', '作业1', '化学1', 1, '33', 11, 23, 33); +INSERT INTO `homework` VALUES (1, 1, '第一章', '2025-01-30 17:24:39', '2025-01-09 17:24:31', '第一章', '化学', 1, '10'); +INSERT INTO `homework` VALUES (2, 1, '第二章', '2025-01-30 17:24:39', '2025-01-20 17:28:12', '第二章', '物理1', 1, '13'); +INSERT INTO `homework` VALUES (3, 2, '第三章', '2025-01-15 10:22:00', '2025-02-05 17:15:02', '作业2', '物理', 1, '15'); +INSERT INTO `homework` VALUES (4, 1, '第四章', '2025-02-12 17:15:20', '2025-02-11 17:15:52', '作业1', '化学1', 1, '33'); -- ---------------------------- -- Table structure for homework_question @@ -97,6 +60,7 @@ INSERT INTO `homework_question` VALUES (1, 3); INSERT INTO `homework_question` VALUES (1, 2); INSERT INTO `homework_question` VALUES (3, 3); INSERT INTO `homework_question` VALUES (1, 1); +INSERT INTO `homework_question` VALUES (1, 4); -- ---------------------------- -- Table structure for homework_wrongquestion @@ -115,24 +79,6 @@ INSERT INTO `homework_wrongquestion` VALUES (1, 3, 1); INSERT INTO `homework_wrongquestion` VALUES (1, 2, 1); INSERT INTO `homework_wrongquestion` VALUES (1, 1, 1); --- ---------------------------- --- Table structure for notice --- ---------------------------- -DROP TABLE IF EXISTS `notice`; -CREATE TABLE `notice` ( - `student_id` int(11) NOT NULL COMMENT '学生id', - `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '消息内容', - `type` int(11) NOT NULL COMMENT '类型(1为成功提交作业,2为作业即将截止,3为成功提交答疑,4为收到老师答复,5为作业已批改)', - `is_read` int(11) NOT NULL COMMENT '是否已读(0未读,1已读)', - `submit_time` datetime NOT NULL COMMENT '消息发送日期' -) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of notice --- ---------------------------- -INSERT INTO `notice` VALUES (1, '已成功提交作业1', 1, 0, '2025-02-25 12:19:14'); -INSERT INTO `notice` VALUES (1, '已成功提交作业2', 1, 0, '2025-02-25 12:19:53'); - -- ---------------------------- -- Table structure for question -- ---------------------------- @@ -151,6 +97,7 @@ CREATE TABLE `question` ( INSERT INTO `question` VALUES (1, 'Vue3 的 Composition API 中,用于响应式数据的方法是?', 0, 'D'); INSERT INTO `question` VALUES (2, '下列哪些属于 Element Plus 的组件?', 1, 'A,B,C,D'); INSERT INTO `question` VALUES (3, '简答什么是控制反转', 2, 'D'); +INSERT INTO `question` VALUES (4, 'vue2跟vue3可以共存', -1, 'A'); -- ---------------------------- -- Table structure for question_option @@ -171,6 +118,8 @@ INSERT INTO `question_option` VALUES (3, 'both', 1); INSERT INTO `question_option` VALUES (1, 'aa', 2); INSERT INTO `question_option` VALUES (2, 'bb', 2); INSERT INTO `question_option` VALUES (3, 'cc', 2); +INSERT INTO `question_option` VALUES (1, '对', 4); +INSERT INTO `question_option` VALUES (2, '错', 4); -- ---------------------------- -- Table structure for student @@ -180,16 +129,14 @@ CREATE TABLE `student` ( `id` int(11) NOT NULL, `sno` varchar(13) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, - `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, - `phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of student -- ---------------------------- -INSERT INTO `student` VALUES (1, '1111', '张三', '123456', '12345678901'); -INSERT INTO `student` VALUES (2, '2222', '老四', '123456', '12345678909'); +INSERT INTO `student` VALUES (1, '1111', '张三'); +INSERT INTO `student` VALUES (2, '2222', '老四'); -- ---------------------------- -- Table structure for submit @@ -206,7 +153,6 @@ CREATE TABLE `submit` ( `answer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '答案', `student_id` int(11) NULL DEFAULT NULL, `teacher_id` int(11) NULL DEFAULT NULL, - `type` int(11) NULL DEFAULT NULL COMMENT '题目类型', PRIMARY KEY (`submit_id`) USING BTREE, INDEX `homework_id`(`homework_id`) USING BTREE, INDEX `student_id`(`student_id`) USING BTREE, @@ -219,7 +165,7 @@ CREATE TABLE `submit` ( -- ---------------------------- -- Records of submit -- ---------------------------- -INSERT INTO `submit` VALUES (1, 1, '2025-03-09 17:44:00', 1, 0, 90, NULL, '[{\"question_id\":2,\"answer\":[2,3]},{\"question_id\":3,\"answer\":[2]}]', 1, 1, NULL); +INSERT INTO `submit` VALUES (1, 1, '2025-03-10 14:59:00', 1, 0, 90, NULL, '[{\"question_id\":1,\"answer\":[1],\"type\":0},{\"question_id\":2,\"answer\":[2],\"type\":1},{\"question_id\":3,\"answer\":[\"asd\"],\"type\":2},{\"question_id\":4,\"answer\":[2],\"type\":-1}]', 1, 1); -- ---------------------------- -- Table structure for teacher @@ -228,34 +174,13 @@ DROP TABLE IF EXISTS `teacher`; CREATE TABLE `teacher` ( `id` int(11) NOT NULL, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, - `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, - `phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of teacher -- ---------------------------- -INSERT INTO `teacher` VALUES (1, '黎明', '123456', '12345432123'); - --- ---------------------------- --- Table structure for user --- ---------------------------- -DROP TABLE IF EXISTS `user`; -CREATE TABLE `user` ( - `user_id` int(11) NOT NULL AUTO_INCREMENT, - `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, - `user_password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, - `role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, - `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, - PRIMARY KEY (`user_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of user --- ---------------------------- -INSERT INTO `user` VALUES (1, '1', '1', '1', '1'); -INSERT INTO `user` VALUES (2, '李明', '2', '2', '2'); +INSERT INTO `teacher` VALUES (1, '黎明'); -- ---------------------------- -- Table structure for wrongquestionsubmit -- Gitee