【发布时间】:2010-03-04 13:56:08
【问题描述】:
我正在使用 Java 包装器来访问 Sqlite,但我认为这是一个一般性的 Sqlite 问题。
String stmt = "SELECT foo FROM bah WHERE foo='%/?/%';
PreparedStatement a = myConn.prepareStatement(stmt);
a.setString(1, "hello");
a.executeQuery();
... 引发异常 - 它不喜欢 ?在引号内。如果我这样做,一切都很好
...WHERE foo=?
但这不是我想要的陈述。
如何将变量插入到这样一个准备好的语句中?如果您忘记了我使用 Sqlite 的事实,那么使用其他数据库技术是如何完成的?
【问题讨论】:
-
不知道我脑海中的答案,但你尝试过 setString(1, "%/hello%") 吗?您可能需要将输入字符串用 % 包围
-
我想我可以做... WHERE foo=?和 a.setString(1, "\'%/hello%/\'");作为最后的手段。
-
在我看到您的建议之前发表了我的评论 SB - 谢谢。我可以这样做,但我仍然想知道是否有更好的方法!
标签: sql sqlite prepared-statement