rip*_*234 7 java sql jdbc prepared-statement
出于多种原因,我想使用准备好的陈述.但是,我想创建一个如下所示的方法:
/* This opens a connection, executes the query, and closes the connection */
public static void executeNonQuery(String queryString);
Run Code Online (Sandbox Code Playgroud)
换句话说,我希望我的应用程序逻辑只需要制定查询和feed参数,但不要处理连接和语句.但是,PreparedStatements是从连接对象创建的,因此我当前不得不使用String.format()来准备查询字符串 - 这很丑陋且危险.
有没有办法在不使用String.format()的情况下做我想做的事情?
Qua*_*noi 14
为什么我需要连接来创建PreparedStatements?
因为这些陈述是在大多数情况下按连接准备RDBMS的.
准备好的语句实际上是缓存的执行计划,不会考虑您的权限,编码,整理设置等.
所有这些都是在查询解析期间完成的.
有没有办法在不使用的情况下做我想做的事
String.format()
不明白你为什么需要String.format()这里.
您可以将查询实现为类,创建连接并在类构造函数中准备查询,然后在方法中执行它.
参数化查询通常如下所示:
SELECT *
FROM table
WHERE col1 = ?
AND col2 = ?
Run Code Online (Sandbox Code Playgroud)
,其中绑定参数将?在查询执行期间替换为s.
如果你想要一个static方法:
static连接句柄.static使用参数化查询文本作为a 创建准备好的查询的哈希表key,并将准备好的查询的句柄创建为value.| 归档时间: |
|
| 查看次数: |
2382 次 |
| 最近记录: |