栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQLSyntaxErrorException在“?”附近 尝试执行PreparedStatement时

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQLSyntaxErrorException在“?”附近 尝试执行PreparedStatement时

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获取在’?附近使用的正确语法。或MemberName
=吗?在第1行

MySQL无法理解

?
SQL查询中的含义。这确实是无效的SQL语法。因此,某种程度上它并没有被取代
PreparedStatement
。你猜怎么着?

PreparedStatement s = conn.prepareStatement(query);s.setInt(1, intValue);s.setString(2, strValue);        rs = s.executeQuery(query); // Fail!

您正在用原始查询覆盖准备好的查询!您需要调用无参

PreparedStatement#executeQuery()
方法而不是
Statement#executeQuery(String)

PreparedStatement s = conn.prepareStatement(query);s.setInt(1, intValue);s.setString(2, strValue);        rs = s.executeQuery(); // OK!

与该问题无关,您的代码正在泄漏资源。几个小时后,数据库将耗尽它们,并且您的应用程序将崩溃。要解决此问题,您需要遵循JDBC习惯语close

Connection
Statement
ResultSet
在获取它们
finally
的代码
try
块中。有关详细信息,请参见JDBC基本教程。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号