今天在写项目的过程中,有一个模块是做多选删除操作,通过servlet获得多选框的value组,然后执行sql操作。如下:

 1 @RequestMapping( "/delteCouse.do" )
2 public void delCouse( HttpServletRequest req, HttpServletResponse resp ) throws SQLException {
3
4 //处理中文
5 try {
6 req.setCharacterEncoding("UTF-8");
7 } catch (UnsupportedEncodingException e) {
8 e.printStackTrace();
9 }
10 resp.setContentType("text/html;charset=utf-8");
11
12 //获取页面传来的值:选中的框的value
13 String courIndex[] = req.getParameterValues("couIndex");
14
15 //根据选中的框的个数,动态生成同样个数的动态占位符
16 String number = null;
17 for (int j = 0; j < courIndex.length; j++) {
18 number +=",?";
19 }
20
21 //SQL语句:添加动态生成的?占位符,满足用户的任意多选操作
22 String sqlString = "DELETE FROM courses WHERE course_id IN (" + number + ")";
23
24 Connection con = myConnection.getConnection();
25 PreparedStatement pStatement = con.prepareStatement(sqlString);
26
27 //动态设置占位符位置的值
28 for (int j = 0; j < courIndex.length; j++) {
29 pStatement.setString(j+1,courIndex[j]);
30 }
31
32 //执行SQL
33 pStatement.executeUpdate();
34 //关闭链接
35 con.close();
36
37 }

测试的时候发现,报500错误:Parameter index out of range(1 > number of parameters, which is 0),还以为存放value的数组和给占位符之间的索引不对应(占位?符从1开始,数组索引从0开始),然而检查了没有毛病,头就大了,检查很久发现是中英文问题!,我的占位问号是中文的!

修改:

我的天,哈哈,查别还是比较大的,但是不容易注意到啊,所以说经验真的重要了,有时候不是什么大难题,就是个没注意到的小问题~,

Parameter index out of range(1 > number of parameters, which is 0)参数索引超出范围的更多相关文章

  1. mybatis中Parameter index out of range (1 > number of parameters, which is 0).

    Parameter index out of range (1 > number of parameters, which is 0).(参数索引超出范围) 在mybatis里面写就是应该是 l ...

  2. Caused by: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0

    1.错误描述 [ERROR:]2015-05-05 16:35:50,664 [异常拦截] org.hibernate.exception.GenericJDBCException: error ex ...

  3. java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

    java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0). at co ...

  4. Parameter index out of range (1 > number of parameters, which is 0).

    数据库错误:Parameter   index   out   of   range   (1   >   number   of   parameters,   which   is   0) ...

  5. org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback.....Parameter index out of range (1 > number of parameters, which is 0).;

    sql有误,一般是   sql语句少了问号.

  6. 【Mybatis异常】Caused by: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

    一.错误原因分析 从错误提示可以看出:实际传入的参数大于sql中待设置的参数,也就是sql中的?少于参数或?根本没有产生原因:  ?号被单引号包围 如: sql += " and artic ...

  7. [转]操作MySQL数据库报出:Parameter index out of range (1 > number of parameters, which is

    原文地址:https://blog.csdn.net/zdx_y/article/details/52072914 对MySQL进行insert操作,控制台抛出以下错误:Parameter index ...

  8. Parameter index out of range (2 > number of parameters, which is 1)

    今天在实现一个功能时遇到一个问题,解决了很久.结果是#{}与${}使用错误的原因.但是具体原因还不是很清楚,写此篇总结,知道的可以交流. 具体描述为:通过教师的头衔(1高级讲师2首席讲师)及名称进行模 ...

  9. java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).

    java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2). java. ...

随机推荐

  1. n, n+1, ..., 2n 中的 5 数环初探

    本篇是 IMO 2021 第一题题解及相关拓展问题分析 和 IMO 2021 第 1 题拓展问题的两个极值的编程求解 的延伸篇. 从上两篇的分析,可知: 当 n < 48 时,n, n+1, . ...

  2. linux grep命令使用详解

    grep是我们最常用的命令之一,但是正真用的熟的不多,把基础命令记牢固,能帮我们节约很多时间 grep的option -A 1 表示找到所有匹配行,并显示所有匹配行后的一行 在错误日志查找时还是很有用 ...

  3. 【Spring 5.x】学习笔记汇总

    Spring 工厂 工厂设计模式.第一个Spring程序细节分析.整合日志框架 注入详解 - Set注入(JDK内置类型,用户自定义类型).构造注入(重载) 反转控制与依赖注入.Spring工厂创建复 ...

  4. Intel® QAT加速卡之Linux上编程说明

    QAT Software for Linux 1. Introduction 该程序员指南提供了有关软件体系结构和使用指南的信息. 相关的英特尔QAT软件库文档中记录了有关使用英特尔QuickAssi ...

  5. el-table回显遇到的坑

    使用element ui 的el-table在做到复选框回显勾中的问题时,整整困惑了我一天,当时百度了一下,好多人都说是  this.$nextTick(() => {})的问提,在组件中监听w ...

  6. 部署MySQL主主复制管理器

    一.概念 MMM(Master-Master replication manager for MvSQL,MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序.MMM 使用 Per ...

  7. Storm近年的发展

    storm作为第一款大数据领域的流式计算引擎,在2013年推出之后风头一时无二.后续虽然有spark streaming也作为流式计算的引擎,但storm依然在流式计算的江湖占有稳定的地位.直到201 ...

  8. 教你搞懂Jenkins安装部署!

    前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用 ...

  9. 如何在win10中Java中JDK的安装和path,classpath的环境配置

    1,第一步,不用说肯定是去下一个java JDK了.目前最新版本的java JDK应该是JDK 7.0,这个就自己去百度一下了,好多网站都可以找到.2,第二步就是安装JDK虚拟机了,按照它里面的提示一 ...

  10. 使用 mysql 的 Docker 镜像

    使用 mysql 的 Docker 镜像 前言 之前搞了很多都是手工在操作系统的镜像中安装使用 mysql,作为自己折腾也就算了,作为实际使用实为不妥:Docker最重要的特性就是可扩展性,把各种程序 ...