String sql = "select * from student where name= ?";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1,n);
ResultSet result = pst.executeQuery( sql);
第一句感觉没问题呀。。。。可是为啥??
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 '?' at line 1
查了好久原来是这样:
 PreparedStatement接口继承Statement,并与之在两方面有所不同:
PreparedStatement 实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。
由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。
作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。另外它还添加了一整套方法,用于设置发送给数据库以取代 IN 参数占位符的值。同时,三种方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数。这些方法的 Statement 形式(接受 SQL 语句参数的形式)不应该用于 PreparedStatement 对象。
然而:    Statement:
用于执行静态 SQL 语句并返回它所生成结果的对象。SQL定了就不能改。
在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它。
另外:
javaee链接JDBC,它只在一个请求的生存时间中保持一个连接.这意味着在他处理每一个请求时都会重新创建语句。
 
综上终于找到错了executeQuery()无参呀!!!

最新文章

  1. android 术语
  2. listView获取item的Edit内容,listView中的edit内容在滚动时自动赋值了前面的内容
  3. 解决adb shell input text 中文输入,unicode转utf-8
  4. C#中Dynamic关键字
  5. Quartz之主方法运行
  6. OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例
  7. Codeforces Round #268 (Div. 1) B. Two Sets 暴力
  8. Redirect
  9. NOIP 2013 花匠
  10. HDU 2665(Kth number-区间第k大[内存限制+重数])
  11. Android 开源项目android-open-project工具库解析之(一) 依赖注入,图片缓存,网络相关,数据库orm工具包,Android公共库
  12. 基于gitHub+hexo搭建的个人博客
  13. ResourceBundleViewResolver
  14. Linux 系统目录结构说明
  15. jtag、在线仿真器
  16. Spring的AOP开发的相关术语
  17. Wireless Penetration Testing(命令总结)
  18. CSS 小技巧
  19. 阿里云云盾服务证书免费CA证书申请与配置 (原)
  20. [osg]osg绘制动态改变顶点的几何体

热门文章

  1. java实现生成二维码
  2. oracle 修改字符集 为ZHS16GBK
  3. Lazarus中Windows单元问题
  4. 使用sigaction函数
  5. UNITY Profiler 真机调试
  6. 剑指OFFER例题——从尾到头打印链表
  7. 用crash来分析一下proc的文件访问
  8. java资源文件解读
  9. Python unindent dese not match any out indentation level 问题
  10. 23种经典设计模式UML类图汇总