2 u010793913 u010793913 于 2014.12.09 08:58 提问

关于servlet中sql语句的问题

String sql="select * from t_log where name=? and pw=?";
在运行到这句的时候产生以下错误

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? and pw=?' at line 1

换成
String sql="select * from t_log"; 可以执行
其他的sql语句
String sql = "insert into t_log(name,pw) values(?,?)"; 也能执行

求解释,是不是where的用发错了啊

9个回答

eagleyan
eagleyan   Rxr 2014.12.09 09:29
已采纳
u010793913
u010793913   2014.12.09 09:07

追加,改为String sql="select * from t_log where name=? "; 依然报错

FlyppyBugs
FlyppyBugs   2014.12.09 09:14

where没用错啊,是不是你要查询的值不符合条件呢

showbo
showbo   Ds   Rxr 2014.12.09 09:21

这种是参数化查询语句,你没给执行语句的对象添加name和pw参数吧

beier9737
beier9737   2014.12.09 09:43

String sql="select * from t_log where pw=?";
String sql="select * from t_log a where a.name=?";
这样试试

beier9737
beier9737   2014.12.09 09:56

select * from t_log where name='名字' and pw='密码’直接参数拼接起来呢

Kelley_cfy
Kelley_cfy   2014.12.09 10:16

这种SQL是属于PreparedStatement,需要这样使用:
PreparedStatement pstmt = conn.prepareStatement("select * from t_log where name=? and pw=?"); // 创建语句,里面的参数等可以用问号代替
pstmt.setString(1,"a");//给第一个问号赋值"a";
pstmt.setString(2,"b");//给第二个问号赋值"b";

pstmt.executequery();

fangmingshijie
fangmingshijie   Ds   Rxr 2014.12.11 15:15

先丢到客户端执行,看是否可以。

shenlan0322
shenlan0322   2014.12.13 18:59

肯定不是运行到这句报的错吧,你执行这个sql时报的错,你之后在提交这个SQL之前,有没有给这两个问号复制 String sql="select * from t_log where name=? and pw=?";
在运行到这句的时候产生以下错误

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JSP&Servlet--SQL语句基础
操作对象\操作方式 创建 删除 修改 数据库​  create batabase       drop database  alter table 表 create table    drop table     视   图​   create view    drop view      索   引     create
用sql语句与servlet实现分页功能的一个小例子
工程环境:myeclipse6.5+tomcat6.0+mysql5.0 说明:将jar包解压,然后导入到myeclipse6.5中,将项目部署到tomcat下,建好数据库,启动tomcat,在浏览器中输入http://localhost:8080/fenye即可运行。
java servlet执行多条MySQL查询语句
在MySQL中执行多个语句,需要把allowMultiQueries参数置为true,而且,只有MySQL Connector/J 3.1.1以上版本才支持。 建立连接时设置一下就可以了,如:jdbc:mysql://127.0.0.1/sample?user=root&password=&allowMultiQueries=true // 执行多条MySQL查询语句->custo
Servlet和sql知识总结(高级篇)
一. 为什么需要状态管理 -Web应用程序使用Http协议通信,而Http协议是"无状态"协议,即服务器一旦响应完客户的请求之后,就断开连接,而同一个客户的下一次请求将重新建立网络连接. -服务器应用程序有时是需要判断是否为同一个客户发出的请求,比如客户的多次选购商品.因此,有必要跟踪同一个客户发出的一系列请求. 二. 状态管理--将客户端(浏览器)与服务器之间多次交互(一次请求,一次响应)当作一
Servlet中一些路径问题(客户端路径和服务端路径)
路径问题分为两种一种是客户端路径,一种是服务端路径,下面分别来介绍1.客户端在进行客户端跳转和服务器端跳转时,都需要指定目标资源的URL,如果这个路径以“”开始。在客户端跳转当中“”代表的是应用服务器根目录,即“http://localhost:8080/”, response.sendRedirect("")以上这些属于客户端路径,其中“/”为http://localhost:8080,“/”后...
关于Java面试中sql优化的问题浅析
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优 化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能
servlet的一些问题和解答
1.servlet是什么 2.servlet的生命周期以及和CGI的区别 3.重定向和请求转发 4.如何实现servlet的单线程模式 5.servlet页面间对象传递的方法有几种 6.JSP和Servlet之间有什么相同点和不同点?联系是什么 7.举例说说你所知道的会话跟踪技术 8.session和cookie机制的区别和联系 9.web容器通过哪三种途径实现会话 以下
拼sql语句统计表中数据
sql语句,学生表统计各省人数和各省的报道人数
oracle中sql语句大小写问题
oracle 中的sql语句除了数据库中的内容区分大小写,其他都不区分大小写(如字段,表名,insert,update,......)  sElEct Job,dEpTno  froM emP;连这样写都行! select dePTno from eMp where job='CLERK';//CLERK存储在数据库中就是大写,则查询是一定要大写
一道SQL语句面试题,关于group by的
一道SQL语句面试题,关于group by 表内容: 2015-05-09 胜 2015-05-09 胜 2015-05-09 负 2015-05-09 负 2015-05-10 胜 2015-05-10 负 2015-05-10 负 如果要生成下列结果, 该如何写sql语句?            胜 负 2015-05-09 2  2 2015-05-10 1