Mybatis "desc tablename" 不工作。获取错误 "The error occurred while setting parameters"
Mybatis "desc tablename" not working. Getting error as "The error occurred while setting parameters"
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'。
我遇到以下异常:
DESCRIBE
不是有效的 SQL 语句。这是一个 SQL*Plus 命令,因此您无法通过 JDBC.
执行它
如果您想通过 JDBC 获取 table 元数据,请像这样使用元数据 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。
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'。
我遇到以下异常:
DESCRIBE
不是有效的 SQL 语句。这是一个 SQL*Plus 命令,因此您无法通过 JDBC.
如果您想通过 JDBC 获取 table 元数据,请像这样使用元数据 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。