mysql索引超出范围 index_输入查询条件会报参数索引超出范围的错误
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_输入查询条件会报参数索引超出范围的错误相关推荐
- python创建提示用户输入查询条件_pythone-2:用户登录并根据条件查询
#!/usr/bin/env python #定义一个退出变量 EXIT="exit" #最大登录次数初值 num=1 #开始 while num < 4: num = nu ...
- Mysql 拼接多个字段作为查询条件查询方法
最近工作中需要把多个字段拼接作为查询条件查询,特此记录便于日后查阅. <select id="listByProgramCodeList" resultType=" ...
- MySQL讲义第 36 讲——select 查询之 INTO OUTFILE参数
MySQL讲义第 36 讲--select 查询之 INTO OUTFILE参数 文章目录 MySQL讲义第 36 讲--select 查询之 INTO OUTFILE参数 一.SELECT ... ...
- day01 与MySQL的第一次亲密接触基础查询条件查询
<尚硅谷>MySQL系统课程一共6天,下面介绍第1天的学习内容,主要涉及MySQL的内容介绍.进阶1基础查询和进阶2条件查询.干货满满,跟着课程的进度来的,可能篇幅略长,但是看完一定会有收 ...
- ajax 制作表格带查询参数,查询表格——建立动态表格,使用ajax输入查询条件将后台数据查询出来以表格的形式展示出来...
function search(){ $.ajax({ type:'Post', url:"FtpAction_listUserQuery", data:{ telephone:$ ...
- 查询表格——建立动态表格,使用ajax输入查询条件将后台数据查询出来以表格的形式展示出来...
建立动态表格,使用ajax将前台查询条件传给后台,并将查询结果以表格的形式展示出来. 页面的展示效果如下图所示: 第一步:查询条件的部分: 代码如下: <div class="text ...
- python创建提示用户输入查询条件_python流程控制练习
''' if条件 ''' 示例 sex= 'female' age=19 is_beautiful=True is_successful=True height=1.70 if sex =='fema ...
- mysql 映射到map null_mybatis处理查询map列表属性为null的问题,而导致查询map无该key对象...
1.常规处理方法(数据库以mysql为例) IFNULL(m.last_use_time,) ) ) as last_lat if判断是否为null,设置一个默认值. 2.前台jsp页面处理,判断是否 ...
- python mysql索引 优化神器explain 慢查询
##############总结########## 数据库中专门帮助用户快速找到数据的一种数据结构 类似于字典的目录的索引 索引的作用:约束和加速查找 工作原理: b+树形结构 最上层是树根,中间是 ...
最新文章
- cad版本在线转换_CAD版本转换中将图纸转换为AutoCAD2018版本的方法
- MindCon极客周 · 点亮城市接力活动正式启动!来为你的城市打Call,还有多重好礼相送!...
- Error: The 'decorators' plugin requires a 'decoratorsBeforeExport' option
- 大型互联网公司必考java面试题与面试技巧
- centos php 开启socket,CentOS 配置PHP支持socket扩展
- 君子动手不动口,阿里云喊你做云上体验官啦!
- 带你一文看懂--应用层、传输层的协议,HTTP协议及实现,UDP和TCP的报文格式以及为什么3次握手和4次挥手
- html状态码206,HTTP状态码206
- 打通版微社区(1):PHP环境部署 for DZX3.2
- mysql优化20条原则
- 异常处理与自定义异常
- 【opencv4】——fatal error: opencv2/opencv.hpp: No such file or directory #include <opencv2/opencv.hpp>
- 好玩的C语言大全,好玩的c语言程序!
- 安装VMware虚拟机及镜像文件
- Simple allow copy使用Chrome插件复制网站文字
- HttpClient Java 常用写法总结
- 会充电的CANoe又双叒叕来了:PLC数据采集、分析、仿真
- php的ct表现,巨大垂体腺瘤(Pituitary adenoma)CT病例图片影像诊断分析
- 手游模拟器里也可以用C++实现 特征码遍历
- matlab2010 notebook,Matlab在Win10 64位下用notebook的问题
热门文章
- Python:数据结构(list, tuple, Dict Set)
- php bmp中创建图像bmp2gd,让GD支持32位BMP
- as3中的 override
- 通过反射获取类的所有属性和方法
- 单片机 驱动 标签打印机tsc_指令打印与驱动打印随笔
- Java计算1除以3结果为0_关于java:Int division:为什么1/3 == 0的结果?
- net.conn read 判断数据读取完毕_单方验方|如何应对千万级工商数据抓取(一)
- Python教学与学习过程中应注意的九句话
- python文件之间如何互相通信_不同的類和.py文件之間的python通信
- 属性子集选择的基本启发方法_Java机器学习库(Java ML)(三、特征选择)