package frame.persist.loader;
|
|
import java.sql.ResultSet;
|
import java.sql.ResultSetMetaData;
|
import java.sql.SQLException;
|
|
import frame.object.meta.EntityMeta;
|
import frame.persist.ILoadable;
|
|
|
public abstract class DataLoader implements ILoadable {
|
|
protected String tableName;
|
protected EntityMeta entityMeta;
|
|
|
protected DataLoader() {
|
|
}
|
|
public DataLoader(String tableName) {
|
this.tableName = tableName;
|
}
|
|
public void load(ResultSet rslt, Object... args) throws Exception {
|
ResultSetMetaData metaData = rslt.getMetaData();
|
loadTableMeta(metaData);
|
|
loadData(rslt);
|
}
|
|
private void loadTableMeta(ResultSetMetaData metaData) throws SQLException {
|
if (entityMeta == null) {
|
ResultMetaFieldReader fieldReader = new ResultMetaFieldReader(metaData);
|
entityMeta = new EntityMeta(tableName, fieldReader);
|
}
|
}
|
|
protected abstract void loadData(ResultSet rslt) throws Exception;
|
|
public void setTableMeta(EntityMeta entityMeta) {
|
this.entityMeta = entityMeta;
|
}
|
}
|