C语言的初学者一个 2023-11-19 19:14 采纳率: 33.3%
浏览 3

JSP查询,如何能够按照图片中的题型,章节,难度进行查询,我现在只能查询出来数据库中所有的题

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>&emsp;
            章节:
            <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>&emsp;
            难易程度:
            <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>


img

  • 写回答

3条回答 默认 最新

  • 玥轩_521 2023-11-19 19:38
    关注
                //     方案2:通过ResultSetHandler指定实体类类型
                QuestionBean questionBean = queryRunner.query(sql, new BeanHandler<>(QuestionBean.class), id);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return QuestionBean;
        }
        /**
         * 查询所有记录
         * @return
         */
        public static List<QuestionBean> queryAll(){
            List<QuestionBean> list = null;
            try {
                String sql ="SELECT * FROM question;";
                QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
                list = queryRunner.query(sql, new BeanListHandler<>(QuestionBean.class));
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return list;
        }
        /**
         * 更新试题信息
         * @param questionBean
         * @return
         */
        public static boolean update(QuestionBean questionBean){
            boolean flag = false;
            try {
                String sql = "update question set ques=?,a=?,b=?,c=?,d=?,answer=?,kind=?,knowledge_point=?,difficulty=?,section=?,score=?,exposure_rate=?,userName=? where id=?";
                Object[] params = {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(),questionBean.getId()};
                QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
                int i = queryRunner.update(sql, params);
                flag=i>0;
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return flag;
        }
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月19日

悬赏问题

  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出