Mybatis“ desc表名”不起作用。将错误显示为“设置参数时发生错误”

时间:2019-04-17 14:21:51

标签: sql oracle mybatis

Queries.xml

<select id="getDBDetails" parameterType="String" resultType="java.util.LinkedHashMap">
                desc ${value}
</select>

MainRunner.java

 List<k> list=commonQuery.getDataFromDB("getDBDetails","TABLENAME");

上面的代码可用于其他查询。

但不适用于“ desc TABLENAME”。

我遇到以下异常: enter image description here

1 个答案:

答案 0 :(得分:1)

DESCRIBE是无效的SQL语句。这是一个SQL * Plus命令,因此您无法通过JDBC执行它。

如果要通过JDBC获取表元数据,请使用元数据API,如下所示:

Connection connection = ...;
DatabaseMetaData databaseMetaData = connection.getMetaData();
ResultSet columns = databaseMetaData.getColumns(null,null, tableName, null);
while(columns.next())
{
    String columnName = columns.getString("COLUMN_NAME");
    String datatype = columns.getString("DATA_TYPE");
    String columnsize = columns.getString("COLUMN_SIZE");
    String decimaldigits = columns.getString("DECIMAL_DIGITS");
    String isNullable = columns.getString("IS_NULLABLE");
    String is_autoIncrment = columns.getString("IS_AUTOINCREMENT");
}

有关详细信息,请参见docmentation