m0_73746734 2022-10-14 00:12 采纳率: 50%
浏览 27
已结题

jsp参数索引超出范围(1>参数个数,为0)该怎么解决?

刚学jsp和sql,想建立一个查询,通过输入学生姓名、所在系和课程名查询到该生的成绩,然后库里建的表都是中文,但我在查询界面输入查询内容之后输出的是,参数索引超出范围(1>参数个数,为0),是哪里出了问题?该怎么解决?

String name = request.getParameter("name");
String department = request.getParameter("department");
String course = request.getParameter("course");
PreparedStatement preparedStatement = con.prepareStatement("SELECT 学生.姓名,所在系,课程.课程名,成绩 from 学生,课程,选课 where 课程.课程号=选课.课程号 and 学生.学号=选课.学号 and 学生.姓名='?' and 所在系='?' and 课程名='?'");
preparedStatement.setString(1,name);
preparedStatement.setString(2,department);
preparedStatement.setString(3,course);
ResultSet rs=stmt.executeQuery("SELECT 学生.姓名,所在系,课程.课程名,成绩 from 学生,课程,选课 where 课程.课程号=选课.课程号 and 学生.学号=选课.学号 and 学生.姓名='?' and 所在系='?' and 课程名='?'");
        while(rs.next())  
        {
            out.println(rs.getString("学生.姓名")+"   "+rs.getString("所在系")+"   "+rs.getString("课程名")+"   "+rs.getString("成绩")+"
"
); } rs.close(); } catch(SQLException se) { out.println(se.toString()); }
  • 写回答

1条回答 默认 最新

  • 心寒丶 全栈领域优质创作者 2022-10-14 02:39
    关注

    直接姓名=?,问号都不要加引号

    img

    前边已经预编译了,下边直接 ResultSet rs=stmt.executeQuery()就行了呀,不用再写同样的语句进去

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月22日
  • 已采纳回答 10月14日
  • 创建了问题 10月14日

悬赏问题

  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端