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

两个百分号之间加了空格,

控制台打印的paramerList为??????是不是表示页面的参数没有传过去?package servlet;

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import bean.Message;

/**

* @author 570

*

*/

public class ListServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 1L;

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

try {

String command = req.getParameter("command");//从页面拿到参数

String description =req.getParameter("description");

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&useSSL=true","root","root");

//            String sql ="SELECT ID,COMMAND,DESCRIPTION,CONTENT FROM imooc_mybatis_list";

//where 1=1 用于语句拼接。。不明所以

StringBuilder sql = new StringBuilder("select ID,COMMAND,DESCRIPTION,CONTENT from imooc_mybatis_list where 1=1");

PreparedStatement ps = conn.prepareStatement(sql.toString());

//            PreparedStatement ps = conn.prepareStatement(sql);

//多条件查询时,利用List做缓冲,保存查询参数,然后再循环赋值

List paramerList = new ArrayList();

//语句拼接如果查询的指令非空且非空字符串则执行语句拼接查询

if (command!=null&&!"".equals(command.trim())) {

sql.append(" and COMMAND=? ");

paramerList.add(command);

}

if (description!=null&&!"".equals(description.trim())) {

sql.append("and DESCRIPTION like '%' ? '%' ");

paramerList.add(description);

}

//把页面上的语句拿给要送到数据库查询的ps中

for (int i = 0; i

System.out.println(paramerList.get(i));

ps.setString(i+1, paramerList.get(i));//错误指向这一行

}

ResultSet rs = ps.executeQuery();

List messageList = new ArrayList();

while (rs.next()) {

Message message = new Message();

messageList.add(message);

message.setId(rs.getString("ID"));

message.setCommand(rs.getString("COMMAND"));

message.setDescription(rs.getString("DESCRIPTION"));

message.setContent(rs.getString("CONTENT"));

}

req.setAttribute("messageList", messageList);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

req.getRequestDispatcher("/WEB-INF/jsp/list.jsp").forward(req, resp);

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

this.doGet(req, resp);

}

}

mysql索引超出范围 index_输入查询条件会报参数索引超出范围的错误相关推荐

  1. python创建提示用户输入查询条件_pythone-2:用户登录并根据条件查询

    #!/usr/bin/env python #定义一个退出变量 EXIT="exit" #最大登录次数初值 num=1 #开始 while num < 4: num = nu ...

  2. Mysql 拼接多个字段作为查询条件查询方法

    最近工作中需要把多个字段拼接作为查询条件查询,特此记录便于日后查阅. <select id="listByProgramCodeList" resultType=" ...

  3. MySQL讲义第 36 讲——select 查询之 INTO OUTFILE参数

    MySQL讲义第 36 讲--select 查询之 INTO OUTFILE参数 文章目录 MySQL讲义第 36 讲--select 查询之 INTO OUTFILE参数 一.SELECT ... ...

  4. day01 与MySQL的第一次亲密接触基础查询条件查询

    <尚硅谷>MySQL系统课程一共6天,下面介绍第1天的学习内容,主要涉及MySQL的内容介绍.进阶1基础查询和进阶2条件查询.干货满满,跟着课程的进度来的,可能篇幅略长,但是看完一定会有收 ...

  5. ajax 制作表格带查询参数,查询表格——建立动态表格,使用ajax输入查询条件将后台数据查询出来以表格的形式展示出来...

    function search(){ $.ajax({ type:'Post', url:"FtpAction_listUserQuery", data:{ telephone:$ ...

  6. 查询表格——建立动态表格,使用ajax输入查询条件将后台数据查询出来以表格的形式展示出来...

    建立动态表格,使用ajax将前台查询条件传给后台,并将查询结果以表格的形式展示出来. 页面的展示效果如下图所示: 第一步:查询条件的部分: 代码如下: <div class="text ...

  7. python创建提示用户输入查询条件_python流程控制练习

    ''' if条件 ''' 示例 sex= 'female' age=19 is_beautiful=True is_successful=True height=1.70 if sex =='fema ...

  8. mysql 映射到map null_mybatis处理查询map列表属性为null的问题,而导致查询map无该key对象...

    1.常规处理方法(数据库以mysql为例) IFNULL(m.last_use_time,) ) ) as last_lat if判断是否为null,设置一个默认值. 2.前台jsp页面处理,判断是否 ...

  9. python mysql索引 优化神器explain 慢查询

    ##############总结########## 数据库中专门帮助用户快速找到数据的一种数据结构 类似于字典的目录的索引 索引的作用:约束和加速查找 工作原理: b+树形结构 最上层是树根,中间是 ...

最新文章

  1. cad版本在线转换_CAD版本转换中将图纸转换为AutoCAD2018版本的方法
  2. MindCon极客周 · 点亮城市接力活动正式启动!来为你的城市打Call,还有多重好礼相送!...
  3. Error: The 'decorators' plugin requires a 'decoratorsBeforeExport' option
  4. 大型互联网公司必考java面试题与面试技巧
  5. centos php 开启socket,CentOS 配置PHP支持socket扩展
  6. 君子动手不动口,阿里云喊你做云上体验官啦!
  7. 带你一文看懂--应用层、传输层的协议,HTTP协议及实现,UDP和TCP的报文格式以及为什么3次握手和4次挥手
  8. html状态码206,HTTP状态码206
  9. 打通版微社区(1):PHP环境部署 for DZX3.2
  10. mysql优化20条原则
  11. 异常处理与自定义异常
  12. 【opencv4】——fatal error: opencv2/opencv.hpp: No such file or directory #include <opencv2/opencv.hpp>
  13. 好玩的C语言大全,好玩的c语言程序!
  14. 安装VMware虚拟机及镜像文件
  15. Simple allow copy使用Chrome插件复制网站文字
  16. HttpClient Java 常用写法总结
  17. 会充电的CANoe又双叒叕来了:PLC数据采集、分析、仿真
  18. php的ct表现,巨大垂体腺瘤(Pituitary adenoma)CT病例图片影像诊断分析
  19. 手游模拟器里也可以用C++实现 特征码遍历
  20. matlab2010 notebook,Matlab在Win10 64位下用notebook的问题

热门文章

  1. Python:数据结构(list, tuple, Dict Set)
  2. php bmp中创建图像bmp2gd,让GD支持32位BMP
  3. as3中的 override
  4. 通过反射获取类的所有属性和方法
  5. 单片机 驱动 标签打印机tsc_指令打印与驱动打印随笔
  6. Java计算1除以3结果为0_关于java:Int division:为什么1/3 == 0的结果?
  7. net.conn read 判断数据读取完毕_单方验方|如何应对千万级工商数据抓取(一)
  8. Python教学与学习过程中应注意的九句话
  9. python文件之间如何互相通信_不同的類和.py文件之間的python通信
  10. 属性子集选择的基本启发方法_Java机器学习库(Java ML)(三、特征选择)