package foundation.data.meta.field;
|
|
import java.sql.ResultSet;
|
import java.sql.ResultSetMetaData;
|
|
import foundation.persist.IMetaDataLoader;
|
import foundation.persist.NamedSQL;
|
import foundation.persist.SQLRunner;
|
import foundation.persist.source.NamedDataSource;
|
|
public class TableFieldLoader implements IMetaDataLoader {
|
|
private NamedDataSource dataSource;
|
private String tableName;
|
private FieldsRuntime fieldsRuntime;
|
|
public TableFieldLoader(NamedDataSource dataSource, String tableName) {
|
this.dataSource = dataSource;
|
this.tableName = tableName;
|
}
|
|
public FieldsRuntime getFieldsByTableResult() throws Exception {
|
String sql = "select * from " + tableName + " where 1 <> 1";
|
NamedSQL namedSQL = new NamedSQL("getMeta", sql);
|
|
SQLRunner.getFieldsBySQL(dataSource, this, namedSQL);
|
return this.fieldsRuntime;
|
}
|
|
public FieldsRuntime getFieldsByTableMeta() throws Exception {
|
SQLRunner.getFieldsByMeta(dataSource, this, tableName);
|
return this.fieldsRuntime;
|
}
|
|
public FieldsRuntime getMetaByNamedSQL(NamedSQL namedSQL) throws Exception {
|
this.tableName = namedSQL.getName();
|
SQLRunner.getTableMetaData(dataSource, this, namedSQL);
|
return this.fieldsRuntime;
|
}
|
|
public void load(ResultSetMetaData metaData) throws Exception {
|
ResultMetaFieldReader fieldReader = new ResultMetaFieldReader(metaData);
|
this.fieldsRuntime = FieldRuntimeCreator.create(fieldReader);
|
}
|
|
public void load(ResultSet resultSet) throws Exception {
|
ResultSetFieldReader fieldReader = new ResultSetFieldReader(resultSet);
|
this.fieldsRuntime = FieldRuntimeCreator.create(fieldReader);
|
}
|
}
|