使用带有MySQL JDBC连接器的cacheResultSetMetadata = true时缓存了哪些元数据?

时间:2014-05-22 21:24:56

标签: java mysql jdbc

我正在使用列出here的不同属性,特别是标记为Performance Extensions的属性。我正在使用 cacheResultSetMetadata 进行测试,但无法找到有关在属性设置为true时确切缓存的文档。

此外,是否有建议/不建议使用它的情况?

1 个答案:

答案 0 :(得分:4)

  

首先,您必须阅读有关ResultSetMetaData的对象,该对象用于获取有关ResultSet对象中列的类型和属性的信息。

SELECT语句返回的ResultSet对象还包含列(字段)名称,长度和类型。

您可以使用res.getMetaData()将它们检索到ResultSetMetaData对象中,该对象提供以下方法以允许获取不同的信息:

getColumnCount()              - Returns the number of columns in this ResultSet object.
getColumnName(int column)     - Get the designated column's name.
getColumnTypeName(int column) - Retrieves the designated column's database-specific type
                                name.
getPrecision(int column)      - Get the designated column's specified column size.
getTableName()                - Returns the qualifier for the underlying table of the
                                ResultSet
getSchemaName()               - Returns the the designated column's table's schema name
getColumnDisplaySize()        - Returns column display length

列是否为只读,可空性,自动编号等。

现在,属性cacheResultSetMetadata指示驱动程序缓存ResultSetMetaDataStatementPreparedStatement

您还可以指定属性metadataCacheSize,告知缓存ResultSetMetadata的查询数量,如果cacheResultSetMetaData设置为'true'(默认为50)