在我的应用程序中,我从用户那里获得SQL查询,然后发送到数据库。是否可以在不分析查询的情况下获取有关 SQL 查询的结果类型的信息?我使用纯 JDBC 来执行这些操作。
是的。您可以使用 PreparedStatement
并调用其 getMetadata
方法,以便获得有关它将返回的ResultSet
列的信息。
http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html#getMetaData()
Connection conn = ...
PreparedStatement ps = conn.prepareStatement(yourStatement);
ResultSetMetadata metadata = ps.getMetadata(); // this is what you need
...
// now you can execute the query
ResultSet rs = ps.executeQuery();
在查询中使用connection.prepareStatement()
,返回一个preparedStatement
。使用其.getMetaData()
方法。