public abstract class Database extends Object
CType
. An object of this type is
automatically considered to be a null type and is handled properly!Modifier and Type | Field and Description |
---|---|
protected static String |
PARAM_NAME_CONNECTION
Parameter name: connection.
|
protected static String |
PARAM_NAME_DATA_SOURCE
Parameter name: dataSource.
|
protected static String |
PARAM_NAME_NAME
Parameter name: name.
|
protected static String |
PARAM_NAME_OWNER
Parameter name: owner.
|
protected static String |
PARAM_NAME_RESULT_SET_ROW_CALL_BACK
Parameter name: resultSetRowCallBack.
|
protected static String |
PARAM_NAME_SQL_STATEMENT
Parameter name: sqlStatement.
|
protected static String |
PARAM_NAME_TABLE_NAME
Parameter name: tableName.
|
Modifier and Type | Method and Description |
---|---|
static int |
execute(Connection connection,
String sqlStatement,
Object... parameters)
Executes a sql statement that is not a SELECT statement.
|
static int |
execute(DataSource dataSource,
String sqlStatement,
Object... parameters)
Executes a sql statement that is not a SELECT statement.
|
static <T> List<T> |
executeQuery(Connection connection,
Integer maximumNumberOfRows,
ResultSetRowCallBackInterface<T> resultSetRowCallBack,
String sqlStatement,
Object... parameters)
Executes a SELECT statement.
|
static List<List<Object>> |
executeQuery(Connection connection,
Integer maximumNumberOfRows,
String sqlStatement,
Object... parameters)
Executes a SELECT statement.
|
static List<List<Object>> |
executeQuery(Connection connection,
String sqlStatement,
Object... parameters)
Executes a SELECT statement.
|
static <T> List<T> |
executeQuery(DataSource dataSource,
Integer maximumNumberOfRows,
ResultSetRowCallBackInterface<T> resultSetRowCallBack,
String sqlStatement,
Object... parameters)
Executes a SELECT statement.
|
static List<List<Object>> |
executeQuery(DataSource dataSource,
Integer maximumNumberOfRows,
String sqlStatement,
Object... parameters)
Executes a SELECT statement.
|
static List<List<Object>> |
executeQuery(DataSource dataSource,
String sqlStatement,
Object... parameters)
Executes a SELECT statement.
|
static <T> long |
executeQueryWithLargeResultSet(Connection connection,
ResultSetRowCallBackInterface<T> resultSetRowCallBack,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that could possible result in a large result set.
|
static <T> long |
executeQueryWithLargeResultSet(DataSource dataSource,
ResultSetRowCallBackInterface<T> resultSetRowCallBack,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that could possible result in a large result set.
|
static double |
executeSingleDoubleResultQuery(Connection connection,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that will fetch the first column from the first row.
|
static double |
executeSingleDoubleResultQuery(DataSource dataSource,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that will fetch the first column from the first row.
|
static long |
executeSingleLongResultQuery(Connection connection,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that will fetch the first column from the first row.
|
static long |
executeSingleLongResultQuery(DataSource dataSource,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that will fetch the first column from the first row.
|
static Object |
executeSingleOptionalResultQuery(Connection connection,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that will fetch the first column from the first row provided that the query results in the
selection of a row.
|
static Object |
executeSingleOptionalResultQuery(DataSource dataSource,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that will fetch the first column from the first row provided that the query results in the
selection of a row.
|
static Object |
executeSingleResultQuery(Connection connection,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that will fetch the first column from the first row.
|
static <T> T |
executeSingleRowResultQuery(Connection connection,
ResultSetRowCallBackInterface<T> resultSetRowCallBack,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that returns a single row.
|
static List<Object> |
executeSingleRowResultQuery(Connection connection,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that returns a single row.
|
static <T> T |
executeSingleRowResultQuery(DataSource dataSource,
ResultSetRowCallBackInterface<T> resultSetRowCallBack,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that returns a single row.
|
static List<Object> |
executeSingleRowResultQuery(DataSource dataSource,
String sqlStatement,
Object... parameters)
Executes a SELECT statement that returns a single row.
|
abstract Constraint |
getActualConstraint(Connection connection,
String owner,
String name)
Gets the constraint owned by the supplied owner and with the supplied name, from the database.
|
abstract List<Constraint> |
getActualConstraints(Connection connection,
String owner,
String tableName)
Gets all constraints on the supplied tableName, owned by the supplied owner.
|
static Database |
getActualDatabase(DatabaseMetaData databaseMetaData)
Gets the actual database, like
DerbyDatabase or OracleDatabase . |
protected abstract Timestamp |
getActualDatabaseTime(Connection connection)
Gets the time of the actual database.
|
protected abstract Table |
getActualTableMetaData(Connection connection,
String owner,
String tableName)
Gets the meta data of the table identified by the supplied tableName.
|
protected abstract List<String> |
getActualTables(Connection connection,
String owner)
Gets the database tables owned by the supplied owner.
|
static Constraint |
getConstraint(Connection connection,
String owner,
String name)
Gets the constraint owned by the supplied owner and with the supplied name, from the database.
|
static Constraint |
getConstraint(DataSource dataSource,
String owner,
String name)
Gets the constraint owned by the supplied owner and with the supplied name, from the database.
|
static List<Constraint> |
getConstraints(Connection connection,
String owner,
String tableName)
Gets all constraints on the supplied tableName, owned by the supplied owner.
|
static List<Constraint> |
getConstraints(DataSource dataSource,
String owner,
String tableName)
Gets all constraints on the supplied tableName, owned by the supplied owner.
|
static Timestamp |
getDatabaseTime(Connection connection)
Gets the time from the database server.
|
static Timestamp |
getDatabaseTime(DataSource dataSource)
Gets the time from the database server.
|
protected List<Column> |
getTableColumns(Connection connection,
String tableName)
Gets the list of columns that are present in the table identified by the supplied tableName.
|
static Table |
getTableMetaData(Connection connection,
String owner,
String tableName)
Gets the meta data of the table identified by the supplied table.
|
static Table |
getTableMetaData(DataSource dataSource,
String owner,
String tableName)
Gets the meta data of the table identified by the supplied tableName.
|
static List<String> |
getTables(Connection connection,
String owner)
Gets the names of all the database tables for the supplied owner.
|
static List<String> |
getTables(DataSource dataSource,
String owner)
Gets the names of all the database tables for the supplied owner.
|
protected abstract String |
getTimestampColumnName()
Gets the column name the database uses to get or insert a timestamp.
|
protected static final String PARAM_NAME_CONNECTION
protected static final String PARAM_NAME_DATA_SOURCE
protected static final String PARAM_NAME_NAME
protected static final String PARAM_NAME_OWNER
protected static final String PARAM_NAME_RESULT_SET_ROW_CALL_BACK
protected static final String PARAM_NAME_SQL_STATEMENT
protected static final String PARAM_NAME_TABLE_NAME
public static Database getActualDatabase(DatabaseMetaData databaseMetaData) throws SQLException
DerbyDatabase
or OracleDatabase
.databaseMetaData
- Meta data that is used to determine what the actual underlying database is.DerbyDatabase
or OracleDatabase
.NullPointerException
- When the supplied databaseMetaData is null.SQLException
- When the database could not be obtained from the supplied databaseMetaData or when the database
could be obtained but corresponds to a database that we do not support.public static int execute(DataSource dataSource, String sqlStatement, Object... parameters) throws SQLException
dataSource
- DataSource used to get a connection from.sqlStatement
- SQL statement that is not a SELECT statement.parameters
- The optional parameters to use in the
insert/update/delete statement.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied dataSource or the
supplied sqlStatement is null.SQLException
- When the statement could not be executed.public static int execute(Connection connection, String sqlStatement, Object... parameters) throws SQLException
connection
- The database connection.sqlStatement
- SQL statement that is not a SELECT statement.parameters
- The optional parameters to use in the
insert/update/delete statement.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied dataSource or the
supplied sqlStatement is null.SQLException
- When the statement could not be executed.public static List<List<Object>> executeQuery(DataSource dataSource, String sqlStatement, Object... parameters) throws SQLException
dataSource
- DataSource used to get a connection from.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied dataSource or the supplied sqlStatement is null.SQLException
- When the statement could not be executed.public static List<List<Object>> executeQuery(Connection connection, String sqlStatement, Object... parameters) throws SQLException
connection
- The database connection.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied connection or the supplied sqlStatement is null.SQLException
- When the statement could not be executed.public static List<List<Object>> executeQuery(DataSource dataSource, Integer maximumNumberOfRows, String sqlStatement, Object... parameters) throws SQLException
dataSource
- DataSource used to get a connection from.maximumNumberOfRows
- The maximum number of rows that the returned list of rows is allowed to contain.
sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty
or when a maximumNumberOfRows less than 1 has been supplied (only thrown when debug mode is enabled).NullPointerException
- When either the supplied dataSource or the supplied sqlStatement is null
(only thrown when debug mode is enabled).SQLException
- When the statement could not be executed.public static List<List<Object>> executeQuery(Connection connection, Integer maximumNumberOfRows, String sqlStatement, Object... parameters) throws SQLException
connection
- The database connection.maximumNumberOfRows
- The maximum number of rows that the returned list of rows is allowed to contain.
sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty
or when a maximumNumberOfRows less than 1 has been supplied (only thrown when debug mode is enabled).NullPointerException
- When either the supplied connection or the supplied sqlStatement is null
(only thrown when debug mode is enabled).SQLException
- When the statement could not be executed.public static <T> List<T> executeQuery(DataSource dataSource, Integer maximumNumberOfRows, ResultSetRowCallBackInterface<T> resultSetRowCallBack, String sqlStatement, Object... parameters) throws SQLException
T
- Type of the elements in the ResultSetRowCallBackInterface.dataSource
- DataSource used to get a connection from.maximumNumberOfRows
- The maximum number of rows that the returned list of rows is allowed to contain.
resultSetRowCallBack
- Object that will be called back for every row fetched from the result set.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty
or when a maximumNumberOfRows less than 1 has been supplied (only thrown when debug mode is enabled).NullPointerException
- When either the supplied dataSource or the supplied resultSetRowCallBack or the supplied
sqlStatement is null (only thrown when debug mode is enabled).SQLException
- When the statement could not be executed.public static <T> List<T> executeQuery(Connection connection, Integer maximumNumberOfRows, ResultSetRowCallBackInterface<T> resultSetRowCallBack, String sqlStatement, Object... parameters) throws SQLException
T
- Type of the elements in the ResultSetRowCallBackInterface.connection
- The database connection.maximumNumberOfRows
- The maximum number of rows that the returned list of rows is allowed to contain.
resultSetRowCallBack
- Object that will be called back for every row fetched from the result set.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty or when a maximumNumberOfRows less than 1 has
been supplied (only thrown when debug mode is enabled).NullPointerException
- When either the supplied connection or the supplied resultSetRowCallBack or the supplied
sqlStatement is null (only thrown when debug mode is enabled).SQLException
- When the statement could not be executed.public static <T> long executeQueryWithLargeResultSet(DataSource dataSource, ResultSetRowCallBackInterface<T> resultSetRowCallBack, String sqlStatement, Object... parameters) throws SQLException
T
- Type of the elements in the ResultSetRowCallBackInterface.dataSource
- DataSource used to get a connection from.resultSetRowCallBack
- Object that will be called back for every row fetched from the result set.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied dataSource or the supplied sqlStatement or the supplied
resultSetRowCallBack, is null.SQLException
- When the statement could not be executed.public static <T> long executeQueryWithLargeResultSet(Connection connection, ResultSetRowCallBackInterface<T> resultSetRowCallBack, String sqlStatement, Object... parameters) throws SQLException
T
- Type of the elements in the ResultSetRowCallBackInterface.connection
- The database connection.resultSetRowCallBack
- Object that will be called back for every row fetched from the result set.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied connection or the supplied sqlStatement or the supplied
resultSetRowCallBack, is null.SQLException
- When the statement could not be executed.public static <T> T executeSingleRowResultQuery(DataSource dataSource, ResultSetRowCallBackInterface<T> resultSetRowCallBack, String sqlStatement, Object... parameters) throws SQLException
T
- Type of the elements in the ResultSetRowCallBackInterface.dataSource
- DataSource used to get a connection from.resultSetRowCallBack
- Object that will be called back for every row fetched from the result set.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied dataSource, resultSetRowCallBack or sqlStatement is null.SQLException
- When the statement could not be executed.public static <T> T executeSingleRowResultQuery(Connection connection, ResultSetRowCallBackInterface<T> resultSetRowCallBack, String sqlStatement, Object... parameters) throws SQLException
T
- Type of the elements in the ResultSetRowCallBackInterface.connection
- The database connection.resultSetRowCallBack
- Object that will be called back for every row fetched from the result set.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied dataSource, resultSetRowCallBack or sqlStatement is null.SQLException
- When the statement could not be executed.public static List<Object> executeSingleRowResultQuery(DataSource dataSource, String sqlStatement, Object... parameters) throws SQLException
dataSource
- DataSource used to get a connection from.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied dataSource, or the supplied sqlStatement is null.SQLException
- When the statement could not be executed.public static List<Object> executeSingleRowResultQuery(Connection connection, String sqlStatement, Object... parameters) throws SQLException
connection
- The database connection.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied dataSource, or the supplied sqlStatement is null.SQLException
- When the statement could not be executed.public static long executeSingleLongResultQuery(DataSource dataSource, String sqlStatement, Object... parameters) throws SQLException
dataSource
- DataSource used to get a connection from.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.ClassCastException
- When the read column is not a Number.IllegalArgumentException
- When the supplied sqlStatement is empty.NullPointerException
- When either the supplied dataSource or the sqlStatement is null.SQLException
- When the statement could not be executed.
NoSingleRowResultSetException
- When the supplied statement results in a result set without any records.public static long executeSingleLongResultQuery(Connection connection, String sqlStatement, Object... parameters) throws SQLException
connection
- The database connection.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.ClassCastException
- When the read column is not a Number.IllegalArgumentException
- When the supplied sqlStatement is empty.NoSingleRowResultSetException
- When the supplied statement results in a result set without any records.
NullPointerException
- When either the supplied dataSource or the supplied sqlStatement is null.SQLException
- When the statement could not be executed.public static double executeSingleDoubleResultQuery(DataSource dataSource, String sqlStatement, Object... parameters) throws SQLException
dataSource
- DataSource used to get a connection from.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.ClassCastException
- When the read column is not a Number.IllegalArgumentException
- When the supplied sqlStatement is empty.NoSingleRowResultSetException
- When the supplied statement results in a result set without any records.
NullPointerException
- When either the supplied dataSource or the supplied sqlStatement is null.SQLException
- When the statement could not be executed or when the result set contains zero rows.
public static double executeSingleDoubleResultQuery(Connection connection, String sqlStatement, Object... parameters) throws SQLException
connection
- The database connection.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.ClassCastException
- When the read column is not a Number.IllegalArgumentException
- When the supplied sqlStatement is empty.NoSingleRowResultSetException
- When the supplied statement results in a result set without any records.
NullPointerException
- When either the supplied dataSource or the supplied sqlStatement is null.SQLException
- When the statement could not be executed.public static Object executeSingleResultQuery(Connection connection, String sqlStatement, Object... parameters) throws SQLException
connection
- The database connection.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.NoSingleRowResultSetException
- When the supplied statement results in a result set without any records.
SQLException
- When the statement could not be executed.public static Object executeSingleOptionalResultQuery(DataSource dataSource, String sqlStatement, Object... parameters) throws SQLException
Number status = (Number)DatabaseType.executeSingleOptionalResultQuery(
dataSource,
"SELECT FIELD FROM TABLE_NAME WHERE ...");
if (status != null) {
int intStatus = status.intValue();
}
dataSource
- DataSource used to get a connection from.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.SQLException
- When the statement could not be executed.
public static Object executeSingleOptionalResultQuery(Connection connection, String sqlStatement, Object... parameters) throws SQLException
Number status = (Number)DatabaseType.executeSingleOptionalResultQuery(
dataSource,
"SELECT FIELD FROM TABLE_NAME WHERE ...");
if (status != null) {
int intStatus = status.intValue();
}
connection
- The database connection.sqlStatement
- SQL select statement.parameters
- The optional parameters to use in the select statement.SQLException
- When the statement could not be executed.
public static Timestamp getDatabaseTime(DataSource dataSource) throws SQLException
dataSource
- DataSource used to get a connection from.NullPointerException
- When the supplied dataSource is null.SQLException
- When the time could not be obtained from the database server
(possibly due to the fact that no connection could be obtained).public static Timestamp getDatabaseTime(Connection connection) throws SQLException
connection
- The database connection.NullPointerException
- When the supplied dataSource is null.SQLException
- When the time could not be obtained from the database server
(possibly due to the fact that the actual database could not be determined).protected abstract Timestamp getActualDatabaseTime(Connection connection) throws SQLException
connection
- The database connection.SQLException
- When the time could not be obtained from the database server.protected abstract String getTimestampColumnName()
public static List<String> getTables(DataSource dataSource, String owner) throws SQLException
dataSource
- DataSource used to get a connection from.owner
- Owner of the database tables.IllegalArgumentException
- When the supplied owner is empty.NullPointerException
- When either the supplied dataSource or the supplied owner is null.SQLException
- When the list of table names could not be obtained from the database server
(possibly due to the fact that no connection could be obtained).public static List<String> getTables(Connection connection, String owner) throws SQLException
connection
- The database connection.owner
- Owner of the database tables.IllegalArgumentException
- When the supplied owner is empty.NullPointerException
- When either the supplied connection or the supplied owner is null.SQLException
- When the list of table names could not be obtained from the database server
(possibly due to the fact that no connection could be obtained).protected abstract List<String> getActualTables(Connection connection, String owner) throws SQLException
connection
- The database connection.owner
- Owner of the database tables.SQLException
- When the list could not be obtained from the database server.public static Table getTableMetaData(DataSource dataSource, String owner, String tableName) throws SQLException
dataSource
- DataSource used to get a connection from.owner
- Owner of the table identified by the supplied tableName.tableName
- Name of the table to get the meta data for.IllegalArgumentException
- When either the supplied owner or the supplied tableName is empty.NullPointerException
- When either the supplied dataSource
or the supplied owner or the supplied tableName is null.SQLException
- When the meta data could not be retrieved
(possibly due to the fact that no connection could be obtained).public static Table getTableMetaData(Connection connection, String owner, String tableName) throws SQLException
connection
- The database connection.owner
- Owner of the table identified by the supplied tableName.tableName
- Name of the table to get the meta data for.IllegalArgumentException
- When either the supplied owner or the supplied tableName is empty.NullPointerException
- When either the supplied connection
or the supplied owner of the supplied tableName is null.SQLException
- When the meta data could not be retrieved
(possibly due to the fact that no connection could be obtained).protected abstract Table getActualTableMetaData(Connection connection, String owner, String tableName) throws SQLException
connection
- The database connection.owner
- Owner of the table identified by the supplied tableName.tableName
- Name of the table to get the meta data for.SQLException
- When the meta data could not be retrieved
(possibly due to the fact that no connection could be obtained).NullPointerException
- When either the supplied connection
or the supplied owner or the supplied tableName is null.IllegalArgumentException
- When either the supplied owner or the supplied tableName is empty.protected List<Column> getTableColumns(Connection connection, String tableName) throws SQLException
connection
- The database connection.tableName
- Name of the table to get the columns for.Column
.SQLException
- When the list of columns could not be retrieved.public static Constraint getConstraint(DataSource dataSource, String owner, String name) throws SQLException
dataSource
- DataSource used to get a connection from.owner
- The owner of the constraint to get.name
- The name of the constraint to get.SQLException
- When the constraint could not be fetched from the database.NullPointerException
- When either the supplied dataSource, owner or name is null.IllegalArgumentException
- When either the supplied owner or name is empty.public static Constraint getConstraint(Connection connection, String owner, String name) throws SQLException
connection
- The database connection.owner
- The owner of the constraint to get.name
- The name of the constraint to get.SQLException
- When the constraint could not be fetched from the database.NullPointerException
- When either the supplied connection, owner or name is null.IllegalArgumentException
- When either the supplied owner or name is empty.public abstract Constraint getActualConstraint(Connection connection, String owner, String name) throws SQLException
connection
- The database connection.owner
- The owner of the constraint to get.name
- The name of the constraint to get.SQLException
- When the constraint could not be fetched from the database.NullPointerException
- When either the supplied connection, owner or name is null.IllegalArgumentException
- When either the supplied owner or name is empty.public static List<Constraint> getConstraints(DataSource dataSource, String owner, String tableName) throws SQLException
dataSource
- DataSource used to get a connection from.owner
- The owner of the constraints to get.tableName
- The name of the table.SQLException
- When the constraints could not be fetched from the database.NullPointerException
- When either the supplied dataSource, owner or tableName is null.IllegalArgumentException
- When either the supplied owner or tableName is empty.public static List<Constraint> getConstraints(Connection connection, String owner, String tableName) throws SQLException
connection
- The database connection.owner
- The owner of the constraints to get.tableName
- The name of the table.SQLException
- When the constraints could not be fetched from the database.NullPointerException
- When either the supplied connection, owner or tableName is null.IllegalArgumentException
- When either the supplied owner or tableName is empty.public abstract List<Constraint> getActualConstraints(Connection connection, String owner, String tableName) throws SQLException
connection
- The database connection.owner
- The owner of the constraints to get.tableName
- The name of the table.SQLException
- When the constraints could not be fetched from the database.NullPointerException
- When either the supplied connection, owner or tableName is null.IllegalArgumentException
- When either the supplied owner or tableName is empty.Copyright © 2008–2018. All rights reserved.