I'm trying to write an application which operates on large amount of data. I want user could customize data structure (record) from different types of variables(float,int,bool,string,enums). These records should be stored in some kind of Array. Size of record: 1-200 variables; size of Array of those records: about 100000 items (one record every second through whole day). I want these data stored in some embedded database (sqlite, hsqldb) - access using simple JDBC. Could you give me some advise how to design thoses data strucures. Sincerely yours :)

Ok, maybe I give some example. This will be some C++ code.
I made an interface:

Java Code:
class ParamI {
virtual string toString() = 0;
virtual void addValue( ParamI * ) = 0;
virtual void setValue( ParamI * ) = 0;
virtual BYTE getType() = 0;
[...]
}
Than I made some template class derived from interface ParamI:

Java Code:
template <class T>
class CParam : CParamI {
public:
void setValue( T val );
T getValue();
string toString();
void setValue( ParamI *src ) {
if ( itemType == src->getType() ) {
CParam<T> *ptr = (CParam<T>*)src;
value = ptr->value;
}
}
private:
BYTE itemType;
T value;
[...]
}
sample constructor of <int> template:

Java Code:
template CParam<int>::CParam() {
itemType = ParamType::INTEGER;
}
This solution makes me possible to write collection of CParamI:

Java Code:
std::vector<CParamI*> myCollection;
CParam<int> *pi = new CParam<int>();
pi->setValue(10);
myCollection.push_back((CParamI*)pi);
Is this correct solution?. My main problem is to get data from the collection. I have to check its data type using getType() method of CParamI interface.
Please could give me some advise, some idea to make it right using java.