点开运行自动出现页面
- pom.xml
XML
如果您不想每次都登录,在 SecurityConfig.java 中改成:
Java
package com.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(auth -> auth
.anyRequest().permitAll()
)
.csrf(csrf -> csrf.disable());
return http.build();
}
}打开 MySQL,执行以下 SQL
SQL
-- 创建数据库
CREATE DATABASE train_security DEFAULT CHARACTER SET utf8mb4;
-- 使用数据库
USE train_security;
-- 1. 用户表
CREATE TABLE sys_user (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(200) NOT NULL,
real_name VARCHAR(50),
role VARCHAR(20) DEFAULT 'user',
status INT DEFAULT 1,
login_fail_count INT DEFAULT 0,
login_lock_time DATETIME,
last_login_time DATETIME,
password_update_time DATETIME,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 2. 课程表
CREATE TABLE course (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
course_name VARCHAR(100) NOT NULL,
course_desc VARCHAR(500),
teacher VARCHAR(50),
status INT DEFAULT 1,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 3. 题目表
CREATE TABLE question (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
question_content TEXT NOT NULL,
option_a VARCHAR(200),
option_b VARCHAR(200),
option_c VARCHAR(200),
option_d VARCHAR(200),
answer VARCHAR(10) NOT NULL,
type VARCHAR(20) DEFAULT 'single',
score INT DEFAULT 10,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 4. 试卷表
CREATE TABLE paper (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
paper_name VARCHAR(100) NOT NULL,
total_score INT DEFAULT 100,
question_ids VARCHAR(500),
status INT DEFAULT 1,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 5. 考试记录表
CREATE TABLE exam_record (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL,
paper_id BIGINT NOT NULL,
score INT DEFAULT 0,
exam_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 插入测试数据
INSERT INTO sys_user (username, password, real_name, role) VALUES ('admin', 'Admin@123456', '管理员', 'admin');
INSERT INTO course (course_name, course_desc, teacher) VALUES ('消防安全培训', '消防设备使用与安全知识', '张老师');
INSERT INTO course (course_name, course_desc, teacher) VALUES ('设备操作规范', '设备运维操作标准流程', '李老师');
INSERT INTO question (question_content, option_a, option_b, option_c, option_d, answer) VALUES ('灭火器的正确使用方法是?', 'A.对准火源根部喷射', 'B.对准火焰顶部喷射', 'C.随意喷射', 'D.倒过来使用', 'A');
INSERT INTO paper (paper_name, total_score, question_ids) VALUES ('消防安全考试', 100, '1');
步骤 2:在 MySQL 中执行
打开 MySQL 命令行或 Navicat,执行上面的 SQL 语句。
步骤 3:重新运行项目
执行完成后,重新运行项目,点击"课程管理"
