- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
使用 Statment,resultSet.getObject 以 xml 形式返回查询计划
Connection conn = getConnection();
String query = " SET SHOWPLAN_XML on ";
Statement st = conn.createStatement();
boolean execute=st.execute(query);
log.info("execute status {} " , execute);
query = " SELECT ATMPROFILES.TERMID as COLUMNID, ATMPROFILES.TERMID as COLUMNNAME FROM ATMPROFILES (NOLOCK) "
+ " WHERE Authprocessname = 'ATMST' "
+ "ORDER BY ATMPROFILES.TERMID ";
ResultSet rs = st.executeQuery(query);
while(rs.next())
{
Object object = rs.getObject(1);
log.info("Query Plan {} ", object);
}
但是如果我通过PreparedStatement执行相同的操作,它会返回实际结果而不是QueryPlan
Connection conn = getConnection();
String query = " SET SHOWPLAN_XML on ";
PreparedStatement ps = conn.prepareStatement(query);
boolean execute = ps.execute();
log.info("execute status {} " , execute);
query = " SELECT ATMPROFILES.TERMID as COLUMNID, ATMPROFILES.TERMID as COLUMNNAME FROM ATMPROFILES (NOLOCK) "
+ " WHERE Authprocessname = 'ATMST' "
+ "ORDER BY ATMPROFILES.TERMID ";
ps=conn.prepareStatement(query);
execute=ps.execute();
log.info("execute status {} " , execute);
ResultSet rs = ps.getResultSet();
while(rs.next())
{
Object object = rs.getObject(1);
// here it returns selected object
log.info("Query Plan {} ", object);
}
任何通过PreparedStatement 实现此目的的想法。
最佳答案
我还没有找到任何引用资料来说明为什么执行 SET SHOWPLAN_XML ON
作为准备好的语句不起作用;但是,当您直接运行此语句并将实际查询作为准备好的语句时,您应该会获得所需的结果。在代码中:
Connection conn = getConnection();
String showplanQuery = "SET SHOWPLAN_XML ON";
Statement st = conn.createStatement();
st.execute(showplanQuery);
String actualQuery = "SELECT ATMPROFILES.TERMID FROM ATMPROFILES (NOLOCK) ";
PreparedStatement ps=conn.prepareStatement(actualQuery);
ps.execute();
ResultSet rs = ps.getResultSet();
while(rs.next())
{
Object object = rs.getObject(1);
// should log the query plan
log.info("Query Plan {} ", object);
}
希望有帮助。
关于java - 在sql server上使用jdbcPreparedStatement获取查询计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38187846/
鉴于 PreparedStatement 的以下代码,我使用占位符 (?) 来填充 String: String sql = "SELECT SUM(Premium), SUM(AgentComm)\
当我想将PreparedStatement初始化用于给定类的所有实例时,放置PreparedStatement初始化的最佳位置是什么? 到目前为止,我的解决方案是创建用于打开和关闭的静态方法,但我认为
我正在尝试使用PreparedStatement 进行批量更新,其中您获取的数据因可用数据而异。 简单的例子: 您有一个包含 x 列和 y 列的表。您的输入数据是仅存在修改后的列的行的表示。因此,对于
这个问题已经有答案了: Variable column names using prepared statements (7 个回答) 已关闭 6 年前。 我与 Oracle 数据库的连接如下: St
有人可以告诉我为什么准备好的语句返回 null 吗?下面是查询数据库的代码: package beans; import java.sql.*; public class ConnectToDB {
我目前正在编写一个与 Oracle 数据库交互的 Java Web 应用程序。我正在使用PreparedStatements,因为Hibernate 会使事情变得太复杂。 由于写入数据库的程序中存在错
我正在使用 JDBC 连接从 Access 数据库获取数据。数据库设计不是我的控制。数据库中有些列带有“?”包含在他们的名称中,例如:Open?、Paid? 等等。 当我尝试使用PreparedSta
这个问题已经有答案了: Variable column names using prepared statements (7 个回答) 已关闭 6 年前。 我与 Oracle 数据库的连接如下: St
这个问题与 Using query_to_xml in PostgreSQL with prepared statements 非常相似但是那里的解决方案似乎不适用于我的情况。这实际上是一个非常奇怪的
我正在使用 Xerials SQLite JDBC 驱动程序,并且想要做您能想象到的最简单的事情: 我创建了下表: CREATE TABLE IF NOT EXISTS households (hos
这个问题已经有答案了: Inserting null to an Integer column using JDBC (2 个回答) 已关闭 5 年前。 当使用原始 JDBC 时,您可以参数化 Pre
我正在使用 postgres 数据库并使用 JDBC。大多数事情都工作正常,但我在这段代码中遇到以下错误,似乎我没有正确使用 setString/setDate 与$ 风格的参数化查询。废话不多说,代
我认为我的 Oracle JDBC 准备语句遗漏了一些明显的内容。我正在尝试创建一个从 TABLE 中选择列 A 的 PreparedStatement ,其中 B 是参数。例如,这也是我总结的测试代
我有一个java中的PreparedStatement。我向它提供包含“?”的查询,例如 Select .... where date >= ? 这没问题,当我尝试使用以下方法设置参数时: prepa
如果您使用 javascript 库“Leaflet”及其插件“Draw”,那么您可以检索如下所示的 geojson: { "type" : "Polygon", "coordinat
我是Java中PreparedStatement的新手,我似乎无法找出解决我的问题的最佳解决方案。我想查询表中 NULL 或 NOT NULL 的记录。 阅读PreparedStatement (Ja
try { Class.forName("org.apache.hive.jdbc.HiveDriver"); } catch (ClassNotFoundException
我是一名优秀的程序员,十分优秀!