QuestionBean实体类
public class QuestionBean {
/**
* 题目id
*/
private int id;
/**
* 题干
*/
private String ques;
/**
* 选项A
*/
private String a;
/**
* 选项B
*/
private String b;
/**
* 选项C
*/
private String c;
/**
* 选项D
*/
private String d;
/**
* 答案
*/
private String answer;
/**
* 题目类型1单选题 2多选题 3判断
*/
private int kind;
/**
* 知识点名称
*
* @return
*/
private String knowledge_point;
/**
* 题目难度等级:1简单、2中等、3偏难、4较难、5非常难个等级
*/
private int difficulty;
/**
* 章节
*/
private String section;
/**
* 默认分数
*/
private double score;
/**
* 知识点Id
* */
private int kno;
/**
* 试卷曝光率
*/
private int exposure_rate;
/**
* 出题人姓名
*/
private String userName;
public QuestionBean(){
}
public QuestionBean(int id, String ques, String a, String b, String c, String d, String answer, int kind, String knowledge_point, int difficulty, String section, double score, int kno, int exposure_rate, String userName) {
this.id = id;
this.ques = ques;
this.a = a;
this.b = b;
this.c = c;
this.d = d;
this.answer = answer;
this.kind = kind;
this.knowledge_point = knowledge_point;
this.difficulty = difficulty;
this.section = section;
this.score = score;
this.kno = kno;
this.exposure_rate = exposure_rate;
this.userName = userName;
}
/**
* 重写equals方法
*/
@Override
public boolean equals(Object obj) {
return this.id == ((QuestionBean) obj).id;
}
/**
* 重写HashCode方法
*/
@Override
public int hashCode() {
return this.id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getQues() {
return ques;
}
public void setQues(String ques) {
this.ques = ques;
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public String getC() {
return c;
}
public void setC(String c) {
this.c = c;
}
public String getD() {
return d;
}
public void setD(String d) {
this.d = d;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
public int getKind() {
return kind;
}
public void setKind(int kind) {
this.kind = kind;
}
public String getKnowledge_point() {
return knowledge_point;
}
public void setKnowledge_point(String knowledge_point) {
this.knowledge_point = knowledge_point;
}
public int getDifficulty() {
return difficulty;
}
public void setDifficulty(int difficulty) {
this.difficulty = difficulty;
}
public String getSection() {
return section;
}
public void setSection(String section) {
this.section = section;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public int getKno() {
return kno;
}
public void setKno(int kno) {
this.kno = kno;
}
public int getExposure_rate() {
return exposure_rate;
}
public void setExposure_rate(int exposure_rate) {
this.exposure_rate = exposure_rate;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "QuestionBean{" +
"id=" + id +
", ques='" + ques + '\'' +
", a='" + a + '\'' +
", b='" + b + '\'' +
", c='" + c + '\'' +
", d='" + d + '\'' +
", answer='" + answer + '\'' +
", kind=" + kind +
", knowledge_point='" + knowledge_point + '\'' +
", difficulty=" + difficulty +
", section='" + section + '\'' +
", score=" + score +
", kno=" + kno +
", exposure_rate=" + exposure_rate +
", userName='" + userName + '\'' +
'}';
}
}
questionDAO类
public class QuestionDAO {
public static boolean insertQuestion(QuestionBean questionBean){
boolean flag = false;
try {
String sql = "insert into question(id,ques,a,b,c,d,answer,kind,knowledge_point,difficulty,section,score,exposure_rate,userName) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
//给SQL中的参数赋值
Object[] params = {questionBean.getId(),questionBean.getQues(),questionBean.getA(),questionBean.getB(),questionBean.getC(),questionBean.getD(),questionBean.getAnswer(),questionBean.getKind(),questionBean.getKnowledge_point(),questionBean.getDifficulty(),questionBean.getSection(),questionBean.getScore(),questionBean.getExposure_rate(),questionBean.getUserName()};
QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
int i = queryRunner.update(sql, params);
flag=i>0;
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
/**
* 删除试题信息
* @return
*/
public static boolean delete(int id){
boolean flag = false;
try {
//1.编写SQL
String sql = "delete from question where id=?";
//2.准备参数
//3.调用commons-dbutils中的QueryRunner执行SQL
QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
int i = queryRunner.update(sql,id);
flag=i>0;
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
/**
* 查询一条记录
* @return
*/
public static QuestionBean queryQuestions(int id){
QuestionBean QuestionBean=null;
try {
String sql ="SELECT id,ques,a,b,c,d,answer,kind,knowledge_point,difficulty,section,score,kno,exposure_rate,userName FROM question,knowledges WHERE id=?;";
QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
//1.对于查询操作,我们需要通过QueryRunner对象调用query方法来执行
//2.所有的query方法都需要一个ResultSetHandler的参数,通过此参数指定query方法的返回类型
// 如果SQL指令执行之后返回的是一行记录,我们通过BeanHandler指定查询结果封装的实体类类型
// 要求:查询结果集的字段名必须与指定的实体类的属性名匹配
// 方案1:创建实体类的时候,实体类中属性的名字与数据表中的列名相同
// 方案2:查询语句字段取别名,让字段别名与实体类属性名一致
QuestionBean = queryRunner.query(sql,new BeanHandler<QuestionBean>(QuestionBean.class),id);
} catch (SQLException e) {
e.printStackTrace();
}
return QuestionBean;
}
/**
* 查询多条记录
* @return
*/
public static List<QuestionBean> selectQuestions(){
List<QuestionBean> QuestionList = null;
try {
String sql ="SELECT id,ques,a,b,c,d,answer,kind,knowledge_point,difficulty,section,score,kno,exposure_rate,userName FROM question,knowledges WHERE knowledge_point=kname";
QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
QuestionList = queryRunner.query(sql, new BeanListHandler<QuestionBean>(QuestionBean.class));
} catch (SQLException e) {
e.printStackTrace();
}
return QuestionList;
}
/**
* 依据题目类型查询
* @return
*/
public static List<QuestionBean> selectQuestionsType(int type){
List<QuestionBean> QuestionList = null;
try {
String sql = "SELECT id,ques,a,b,c,d,answer,kind,knowledge_point,difficulty,section,score,kno,exposure_rate,userName FROM question,knowledges WHERE knowledge_point=kname and kind=?";
QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
QuestionList = queryRunner.query(sql, new BeanListHandler<QuestionBean>(QuestionBean.class),type);
} catch (SQLException e) {
e.printStackTrace();
}
return QuestionList;
}
/**
* 获取知识点id
* 数据库字段 int kno
* @return*/
//获取信息为值
public static Long getPointId(QuestionBean questionBean){
Long id = null;
String sql = "select kno from knowledges where kname=? ";
QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
// 如果SQL指令执行之后返回的是一个值时,我们通过ScalarHandler指定返回类型
// QueryRunner在处理统计操作时,是以long类型进行操作的,因此不能直接转成Integer
// 如果我们确定这个值在int范围内,我们可以在得到long类型之后进行强转,建议使用long处理
ScalarHandler<Long> scalarHandler = new ScalarHandler<Long>();
try {
id = queryRunner.query(sql, scalarHandler, questionBean.getKnowledge_point());
} catch (SQLException e) {
e.printStackTrace();
}
return id;
}
}
```java
JSP代码
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/276982293007129.png "#left")
<%@ page import="com.liu.sql.dto.QuestionBean" %>
<%@ page import="com.liu.sql.dao.QuestionDAO" %>
<%@ page import="java.util.List" %><%--
Created by IntelliJ IDEA.
User: tang'hen'tian
Date: 2023/11/19
Time: 13:06
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>问题查询</title>
</head>
<body>
<div align="center">
<form action="" methed="post">
题型:
<select name="kind">
<option value="0">全部</option>
<option value="1单选题">1单选题</option>
<option value="2多选题">2多选题</option>
<option value="3判断题">3判断题</option>
</select> 
章节:
<select name="section">
<option value="0">全部</option>
<option value="0">数据库基础知识</option>
<option value="0">数据库索引</option>
<option value="0">数据库安全</option>
<option value="0">数据操作</option>
<option value="0">子查询</option>
<option value="0">关系数据库</option>
<option value="0">SQL语句</option>
<option value="0">数据库管理</option>
<option value="0">完整性规则</option>
<option value="0">数据库创建</option>
<option value="0">存储结构</option>
<option value="0">数据库操作</option>
<option value="0">数据库设计</option>
<option value="0">数据库概念</option>
<option value="0">SQL语言</option>
<option value="0">SQL基础知识</option>
<option value="0">SQL数据类型</option>
<option value="0">SQL视图</option>
<option value="0">SQL事务</option>
<option value="0">SQL安全性</option>
<option value="0">SQL触发器</option>
<option value="0">SQL子查询</option>
<option value="0">数据库模式与结构</option>
<option value="0">数据库独立性</option>
<option value="0">数据库基础</option>
<option value="0">数据库管理技术发展过程</option>
<option value="0">数据库角色</option>
<option value="0">索引</option>
<option value="0">数据类型</option>
<option value="0">数据库转换</option>
<option value="0">关系型数据库</option>
<option value="0">主键</option>
<option value="0">数据与信息</option>
<option value="0">触发器</option>
<option value="0">数据库视图</option>
<option value="0">SQL Server</option>
<option value="0">存储过程</option>
<option value="0">数据冗余</option>
<option value="0">数据库恢复</option>
<option value="0">数据安全性</option>
<option value="0">数据库规则</option>
</select> 
难易程度:
<select name="difficulty">
<option value="0">全部</option>
<option value="1">难度1</option>
<option value="2">难度2</option>
<option value="3">难度3</option>
<option value="4">难度4</option>
<option value="5">难度5</option>
</select>
关键字:<input type="text" name="knowledge_point/">
<input type="submit" value="提交"/>
</form>
<hr>
<table border="1" cellspacing="0">
<tr>
<th width="40">编号</th>
<th width="500">题目内容</th>
<th width="70">题目类型</th>
<th width="120">题目章节</th>
<th width="70">题目分值</th>
<th width="70">难易程度</th>
<th width="70">查看详情</th>
<th width="40">删除</th>
</tr>
<%
List<QuestionBean> listquestion= QuestionDAO.selectQuestions();
for (int i=0;i< listquestion.size();i++){
%>
<tr>
<td><%=listquestion.get(i).getId()%></td>
<td><%=listquestion.get(i).getQues()%></td>
<td><%=listquestion.get(i).getKind()%></td>
<td><%=listquestion.get(i).getSection()%></td>
<td><%=listquestion.get(i).getScore()%></td>
<td><%=listquestion.get(i).getDifficulty()%></td>
<td><a href=""> 查看详情</a></td>
<td><a href="">删除</a></td>
</tr>
<%}
%>
</table>
</div>
</body>
</html>