试题管理系统[详细步骤&内含源码]

2023-11-11

试题管理系统

需求

1.数据库中试题信息的动态展示功能
2.增加试题
3.删除单个试题功能,删除多个试题功能
4.分页查询并展示功能

所用技术

MyBatis、SpringMVC、idea+Maven、数据库、Jsp

步骤

建表

建立表格、序列以及测试数据等

create table t_exam(
id number(5) primary key,
title varchar2(200),
optionA varchar2(200),
optionB varchar2(200),
optionC varchar2(200),
answer varchar2(10)
);
create sequence seq_exam;
insert into t_exam values(seq_exam.nextval,‘1+1=?’,‘1’,‘2’,‘3’,‘B’);
select * from t_exam;

项目部署

idea+maven的项目部署是相对麻烦的,因此我将maven的相关配置、部署以及操作都放在了下面链接中,

maven相关资料

项目部署完成应该是下图中src的样子,target是后来运行项目自动生成的,没有的文件夹自行加上
在这里插入图片描述

引入依赖

在pom.xml中利用坐标添加需要用到的jar包


<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
    <!--springmvc的包-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>

    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc</artifactId>
      <version>6.0</version>
    </dependency>

    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jstl-impl</artifactId>
    <version>1.2</version>
  </dependency>
    <!-- servlet依赖属于tomcat,之前创建web项目自动包含这个依赖-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>
  </dependencies>

配置web.xml

web.xml相关配置在后边的源码中,路径为src/main/webapp/WEB-INF/web.xml,注意web.xml的版本,即这句

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

idea自动生成的web.xml版本会比较低,必须手动升级,将原先版本替换,否则可能会识别不了Jsp中的El表达式,无法在作用域中取值

配置spring-mvc.xml

在配置好的web.xml中,这行代码会报错

<param-value>classpath:spring-mvc.xml</param-value>

这是因为没找到spring-mvc配置文件,我们需要在src/main/resources下手动创建

建立控制器

同样,在spring-mvc.xml中

<context:component-scan base-package="controller"/>

这行代码也会报错,我们需要在src/main/java下手动创建controller包,至此,springmvc相关配置就完成了

配置Mybatis

相关依赖已经在前面步骤中引入,我们只需在src/main/resources下引入MyBatis的主配置文件mybatis-config.xml

代码完成顺序

源码已经存在,这里简单说一下代码完成顺序

1.src/main/java/util包下引入工具类
2.根据数据库中的表格在src/main/java/entity包中建立实体类
3.在src/main/java/dao中建立Dao接口
4.在src/main/resources下建立dao文件夹(注意这里是文件夹),该目录下建立mapper文件,用于实现Dao接口中的方法,文件名要与Dao接口的文件名一致
5.测试Dao
6.src/main/java/service包下建立业务类接口
7.src/main/java/service/impl包下实现业务类
8.测试业务类
9.在src/main/java/controller包下编写控制器

完成以上步骤,在Tomcat部署完成后即可运行项目了。

项目展示

1.展示所有试题展示所有页面
2.分页展示试题
在这里插入图片描述
3.添加试题
在这里插入图片描述
4.修改试题
在这里插入图片描述

项目源码

ExamManager项目源码

以上就是项目的全部内容了,欢迎大家评论或私信

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

试题管理系统[详细步骤&内含源码] 的相关文章

  • 将 MouseListener 添加到面板

    我正在尝试将鼠标操作添加到我的面板中 这就是程序应该做的事情 编写一个程序 允许用户通过按三下鼠标来指定一个三角形 第一次按下鼠标后 画一个小点 第二次按下鼠标后 绘制一条连接前两个点的线 第三次按下鼠标后 绘制整个三角形 第四次按下鼠标会
  • 最快的高斯模糊实现

    如何以最快的速度实施高斯模糊 http en wikipedia org wiki Gaussian blur算法 我要用Java来实现它 所以GPU http en wikipedia org wiki Graphics processi
  • Java 卡布局。多张卡中的一个组件

    一个组件 例如JLabel 在多张卡中使用CardLayout 目前看来该组件仅出现在它添加到的最后一张卡上 如果有办法做到这一点 我应该吗 这是不好的做法吗 或者有其他选择吗 你是对的 它只出现在 添加到的最后一张卡 中 但这与CardL
  • 本地开发的 Azure Functions 扩展包版本问题

    我有一个带有队列触发器的 Java 11 Azure 函数 该函数在部署到 Azure 时按预期工作 并正确从定义的服务总线主题中提取消息 但是 运行相同的功能locally除非我回滚版本 否则不起作用Azure Functions 绑定扩
  • 即使在轴上进行自动量程调整,我也可以保留积分刻度线吗?

    我 偷 了一些代码here http fxexperience com 2012 01 curve fitting and styling areachart 拥有一个AreaChart我在 FXML 中使用了 平滑线条 它的工作原理如下
  • 在哪里保存选项值、重要文件的路径等[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在创建一个程序 需要设置一些选项值以及图像文件的一些路径 SQLite 数据库的路径 有关各种按钮上文本的一些信息 有关要使用哪个数据库的信
  • 无法访问“不安全”java方法的java表达式语言

    我正在开发一个项目 让用户向服务器提交小 脚本 然后我将执行这些脚本 有很多脚本语言可以嵌入到Java程序中 例如mvel ognl uel clojure rhino javascript等 但是 据我所知 它们都允许脚本编写者调用Jav
  • 以有效的方式从 Map 中删除多个键?

    我有一个Map
  • JavaFX使节点覆盖父节点边框颜色

    我有一个如下所示的节点 仅使用 css 我希望标签覆盖其父边框颜色 因此标签下方的边框颜色部分变得不可见 我用来制作这个边框的CSS代码 fx border color black fx border width 3 fx border r
  • Struts 1 到 Spring 迁移 - 策略

    我有一个legacy银行应用程序编码为Struts 1 JSP现在的要求是迁移后端 目前为 MVC to Springboot MVC 后续UI JSP 将迁移到angular Caveats 1 后端不是无状态的 2 会话对象中存储了大量
  • 如何在 JPA 和 Hibernate 中将数据库生成的列值定义为只读字段?

    使用 MariaDB 10 2 可以定义日期时间的默认值 例如创建和最后修改 我应该如何将此列作为只读字段访问 因为这个值应该只在数据库的控制之下 并且不应该从代码中修改 但我想在代码中读取这个属性 这很简单 只需设置insertable
  • 嵌套字段的 Comparator.comparing(...)

    假设我有一个这样的域模型 class Lecture Course course getters class Course Teacher teacher int studentSize getters class Teacher int
  • 如何以编程方式创建 CardView

    我正在开发一个 Android 应用程序Java Android Studio 我想在活动中创建CardView以编程方式 我想将以下属性设置为CardView layout width wrap content layout row 0
  • 如何减去两个 XmlGregorianCalendar 对象来创建一个 Duration 对象?

    我想计算两个时间之间的差值XmlGregorianCalendar对象 从而创建一个Duration object 但我还没有找到执行减法的干净方法 你会怎么做 那应该是 DatatypeFactory newDuration xgc2 t
  • 删除 JFX 中选项卡后面的灰色背景

    So is there any way to remove the gray area behind the tab s 我尝试过用 CSS 来做到这一点 但没有找到方法 要设置 tabpane 标题的背景颜色 请在 CSS 文件中写入 t
  • java中使用多线程调用同一类的不同方法

    我有一个类 如下所示 具有三种方法 public class MyRunnable implements Runnable Override public void run what code need to write here to c
  • 如何制作一个makefile只用于编译一些java文件?

    我有三个java文件 名为A java B java C java A将创建对象B B将创建对象C 但我以前从未构建过makefile 有谁可以帮我构建一个 makefile 来编译这三个 java 文件吗 我应该使用什么工具来制作 mak
  • Collections.sort(list) 和 list.sort(Comparator) 之间的区别

    有什么理由让我应该选择Collections sort list 方法而不是简单地调用list sort 内部Collections sort只是调用sort的方法List无论如何 上课 令人惊讶的是几乎每个人都告诉我使用Collectio
  • 受信任的 1.5 小程序可以执行系统命令吗?

    如果是的话 这个能力有什么限制吗 具体来说 我需要以 Mac OSX 为目标 我以前用过这个在 Windows 系统上启动东西 但从未在 Mac 上尝试过 public void launchScript String args Strin
  • Java中单例的其他方式[重复]

    这个问题在这里已经有答案了 只是我在考虑编写单例类的其他方法 那么这个类是否被认为是单例类呢 public class MyClass static Myclass myclass static myclass new MyClass pr

随机推荐

  • 数据可视化:掌握数据领域的万金油技能

    欢迎来到我的博客 作者 秋无之地 简介 CSDN爬虫 后端 大数据领域创作者 目前从事python爬虫 后端和大数据等相关工作 主要擅长领域有 爬虫 后端 大数据开发 数据分析等 欢迎小伙伴们点赞 收藏 留言 关注 关注必回关 上一篇文章已
  • python 中 sm.graphics.plot_regress_exog 绘制图像的解释

    导入相关包 import numpy as np import pandas as pd import statsmodels api as sm import matplotlib pyplot as plt 创建数据 X np aran
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • <van-empty description=““ /> 滚动条bug

    使用
  • 用 echarts画图时tooltip.formatter参数params不会更新

    使用echarts画地图时 遇到一个很奇怪的问题 首先说明我的目的 为了让地图漂亮些 不同的地图区域显示不同的颜色 由于待绘制的地图二级地市数量不确定 需要通过解析获取到的数据来确定 因此我在 series的itemStyle中采用了函数来
  • mysql 查询两个时间段是否有交集的情况

    只要查询自己选择的时间段 和 数据库里面的时间段 是否有交集 就可以了 数据库的字段 start time end time 输入的字段 a b 第一种 SELECT FROM test table WHERE start time gt
  • FPGA学习日记(二)使用quartusII创建ip核

    使用quartusII创建各类ip核 操作大体上都相似 区别在于根据实际需求对ip核进行设置 下面以pll的ip核创建为例 讲述ip核的一般创建过程 step1 找到tools下的魔棒选项 step2 选择创建一个新的ip核还是导入已有的i
  • 华为OD岗位机试指南

    首先 自己要去熟悉编程语言的方法 找一些题目来做 比如力扣的中等题目 过往的OD机试题目 主要学习解题思想 看代码里高级写法 而不是仅仅收藏 照抄 同时一定要优先熟悉牛客网的编程环境 尽量在网页编辑 本地编译会导致粘贴时错行 会很坑的 其次
  • 图像分类:搭建AlexNet并定义加载训练特定数据集

    目录 前言 AlexNet搭建 模型架构 卷积神经网络输出 层设置 模型代码 数据集定义加载 自定义数据集 数据集定义代码 读取txt文件 处理加载数据集 数据集加载代码 训练测试 训练过程 测试过程 前言 AlexNet模型是2012由A
  • qemu-system-x86_64 命令创建虚拟机,报gtk initialization failed的

    因为是ssh命令行启动 增加 nographic opt debug bin qemu system aarch64 machine virt 6 2 qmp tcp localhost 1238 server nowait nograph
  • npm离线安装全局模块包

    首先下载所需的npm模块包及其所有依赖项 使用以下命令将模块包及其依赖项下载到一个目录中 npm pack
  • 显式链接、隐式链接和显式加载、隐式加载以及动态库路径查找

    我们知道库一般有静态库和动态库2种 静态库是编译时就链接到可执行文件中的 动态库是在程序运行时再进行加载的 故本文讨论的链接与加载方式是指对动态库而言的 一 动态库的加载方式 1 隐式加载 就是我们需要准备好 h lib或者 so 对头文件
  • 使用libcurl步骤4之curl_easy_perform

    文章采集自互联网 仅做学习笔记使用 curl easy perform 同步执行文件传输 名称 curl easy perform 执行阻止文件传输 概要 include
  • 如何在vue项目中使用Highmaps(vue+Highmaps)

    如何在vue项目中使用Highmaps 功能需求 思路 分析 实现 第一步 引入 第二步 介绍一下这个world是个啥 第三步 调用 注意点 十分重要 写在最后 功能需求 近日我接到了这么一个需求 原型如下 在系统中需要绘制一个图表 世界地
  • 【9月比赛合集】9场可报名的「创新应用」、「数据分析」和「程序设计」大奖赛,任君挑选!

    CompHub 1 实时聚合多平台的数据类 Kaggle 天池 和OJ类 Leetcode 牛客 比赛 本账号会推送最新的比赛消息 欢迎关注 以下信息仅供参考 以比赛官网为准 目录 创新应用赛 2场比赛 程序设计赛 7场比赛 创新应用赛 2
  • 华为nova7支持升级鸿蒙os的机型,华为全面进入鸿蒙OS时代,这些机型包括荣耀或将都可升级...

    原标题 华为全面进入鸿蒙OS时代 这些机型包括荣耀或将都可升级 之前 华为已经爆出将适配EMUI 11 1系统 而这款最新系统的内核将换成鸿蒙OS 这意味着华为开始全面进入鸿蒙OS时代 也就是国产系统时代 而之前消息显示 前期仅有13款机型
  • Android开发和安全系列工具

    原文 http sec redclub com index php archives 439 spm a313e 7916648 0 0 lvpNiu 取证工具 bandicoot https github com yvesalexandr
  • Modbus网关的 四种类型

    概述 Modbus网关是一种能够将Modubs TCP协议转化为Modbus RTU协议的设备 Modbus广泛应用于仪表和传感器领域 可以获得仪表和传感器的数据 但是传统的基于RS485的Modbus RTU 或ASCII 速度和扩展性较
  • DDoS攻击实验笔记

    DoS DDoS简介 DoS Denial of Service 拒绝服务攻击是通过一些方法影响服务的可用性 比如早期主要基于系统和应用程序的漏洞 只需要几个请求或数据包就能导致长时间的服务不可用 但易被入侵检测系统发现 DDoS Dist
  • 试题管理系统[详细步骤&内含源码]

    试题管理系统 需求 1 数据库中试题信息的动态展示功能 2 增加试题 3 删除单个试题功能 删除多个试题功能 4 分页查询并展示功能 所用技术 MyBatis SpringMVC idea Maven 数据库 Jsp 步骤 建表 建立表格