|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--jdbc.AbstractTable
designed to minimize sql-code in implements
Field Summary | |
protected java.lang.String[] |
colNamesR
reference to columnnames in implementing class initialized when getColNamesR() is first called |
protected java.util.Vector |
contents
contents of table; copy of last call to getAll(); reset to null after every insert request |
protected java.util.Map |
contentsMap
contents of table as Map keyString -> selectRec() |
protected boolean |
createID
add COUNTER field at create; defaults to false |
protected DataSource |
dbname
datasource this belongs to |
protected int |
defaultFieldLength
default length for char field |
protected int |
ix_primaryKey
0-based column number of primary key column; default -1 (no primary key) |
(package private) static java.lang.String |
nl
|
Constructor Summary | |
protected |
AbstractTable(DataSource dbname)
reference to table |
Method Summary | |
boolean |
contains(java.lang.Object o)
returns true if object with same key is found in contents |
java.util.Vector |
get(java.lang.String select)
return table contents, each record placed in Vector, selectRec() is called to convert ResultSet into Object connection is created with each call |
java.util.Vector |
getAll()
return table contents, each record placed in Vector |
protected java.lang.String[] |
getColNamesR()
|
int[] |
getColumnLengths()
subclass should return lengths of varchar columns |
abstract java.lang.String[] |
getColumnNames()
implement in subclass |
java.util.Vector |
getContents()
|
java.util.Iterator |
getContentsIt()
|
java.util.Map |
getContentsMap()
|
DataSource |
getDataSource()
|
java.util.Vector |
getDifference(java.util.Vector items)
|
java.lang.String |
getKeyField()
used in 'where' of update: update .. where 'getKeyField' == 'getKeyString' |
java.lang.String |
getKeyString(java.lang.Object o)
(override in subclass) used to perform equal match in contains(); determines behaviour of insertDifference, updateStringFor() etc. |
abstract java.lang.String |
getName()
implement in subclass |
boolean |
hasColumnName(java.lang.String s)
|
void |
insertDifference(java.util.Vector list)
|
void |
insertInto(java.util.Vector list)
insert all object in vector call insertRec (which should be implemented in subclass) |
protected void |
insertRec(java.sql.PreparedStatement insertStmt,
java.lang.Object rec)
insert 1 rec using PreparedStatement, call-back for insertInto( Vector ) has to be implemented if user of the table needs to call public insertInto( Vector ) does nothing by default |
void |
insertStringRecord(java.lang.String[] vals)
insert 1 record; object values all string values |
protected java.sql.PreparedStatement |
prepareInsertInto()
create appropriate PreparedStatement |
protected void |
removeAll()
|
protected java.sql.ResultSet |
selectAll()
create connection and return all records in ResultSet |
protected java.lang.Object |
selectRec(java.sql.ResultSet result)
assemble 1 Object based on 1 ResultSet item has to be implemented if client needs to use public Vector get( String sqlStatement ) returns null if not overridden in subclass |
protected void |
setColPrimaryKey(int i)
|
java.lang.String |
sqlCreateTable()
build sql statement create table; all fields VarChar( <defaultFieldLenght> ) for fieldnames ending in 'DATE' a Date field is created for fieldnames ending in '_INT', a (MSJet) Long field is created |
java.lang.String |
sqlInsert(java.lang.String[] record)
build sql statement build statementstring to prepare insert for 1 full record: 'INSERT INTO <table> (<field1>, <field2> ...) |
java.lang.String |
sqlPrepareInsertInto()
build sql statement prepare statement for 1 record: 'INSERT INTO <tabel> (<veld1>, <veld2>) VALUES ( ? |
java.lang.String |
sqlSelectAll()
build sql statement |
java.lang.String |
sqlUpdateStringVal(java.lang.Object o,
java.lang.String field,
java.lang.String newVal)
build sql statement build statementstring to update 1 string val in 1 record 'UPDATE <table> SET (<field1> = WHERE <field0> = 'key';' |
java.lang.String |
sqlUpdateVal(java.lang.String key,
java.lang.String keyVal,
java.lang.String field,
java.lang.String newVal)
|
static java.lang.String |
squote(java.lang.String s)
|
java.lang.String |
toString()
|
int |
updateStringFor(java.lang.Object o,
java.lang.String field,
java.lang.String val)
update string value for named field |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected java.util.Vector contents
protected java.util.Map contentsMap
protected DataSource dbname
protected boolean createID
protected int defaultFieldLength
protected int ix_primaryKey
sqlCreateTable()
protected java.lang.String[] colNamesR
static java.lang.String nl
Constructor Detail |
protected AbstractTable(DataSource dbname)
Method Detail |
protected void setColPrimaryKey(int i)
public abstract java.lang.String[] getColumnNames()
public DataSource getDataSource()
protected java.lang.String[] getColNamesR()
public abstract java.lang.String getName()
public int[] getColumnLengths()
protected void removeAll()
protected void insertRec(java.sql.PreparedStatement insertStmt, java.lang.Object rec) throws java.sql.SQLException
java.sql.SQLException
insertInto(java.util.Vector)
protected java.lang.Object selectRec(java.sql.ResultSet result) throws java.sql.SQLException
java.sql.SQLException
getAll()
public java.lang.String sqlSelectAll()
public java.lang.String sqlCreateTable()
create table; all fields VarChar( <defaultFieldLenght> )
for fieldnames ending in 'DATE' a Date field is created
for fieldnames ending in '_INT', a (MSJet) Long field is created
defaultFieldLength
public java.lang.String sqlPrepareInsertInto()
public java.lang.String sqlInsert(java.lang.String[] record)
'INSERT INTO <table> (<field1>, <field2> ...) VALUES ( record[0], record[1] ... );'
public java.lang.String sqlUpdateStringVal(java.lang.Object o, java.lang.String field, java.lang.String newVal)
'UPDATE <table> SET (<field1> = WHERE <field0> = 'key';'
getKeyField()
public java.lang.String sqlUpdateVal(java.lang.String key, java.lang.String keyVal, java.lang.String field, java.lang.String newVal)
public static java.lang.String squote(java.lang.String s)
public boolean hasColumnName(java.lang.String s)
protected java.sql.PreparedStatement prepareInsertInto() throws java.lang.Exception
java.lang.Exception
public int updateStringFor(java.lang.Object o, java.lang.String field, java.lang.String val) throws java.sql.SQLException
java.sql.SQLException
public void insertStringRecord(java.lang.String[] vals) throws java.lang.Exception
java.lang.Exception
- "illegal insert" if vals.length != colNames.length
java.sql.SQLException
sqlInsert(java.lang.String[])
,
getColumnNames()
public void insertInto(java.util.Vector list) throws java.lang.Exception
java.lang.Exception
insertRec(java.sql.PreparedStatement, java.lang.Object)
public java.lang.String getKeyString(java.lang.Object o)
public java.lang.String getKeyField()
public void insertDifference(java.util.Vector list) throws java.lang.Exception
java.lang.Exception
protected java.sql.ResultSet selectAll() throws java.lang.Exception
java.lang.Exception
public java.util.Vector get(java.lang.String select) throws java.lang.Exception
java.lang.Exception
selectRec(java.sql.ResultSet)
public java.util.Vector getAll() throws java.lang.Exception
java.lang.Exception
public boolean contains(java.lang.Object o)
getKeyString(java.lang.Object)
public java.util.Vector getDifference(java.util.Vector items)
public java.util.Vector getContents()
public java.util.Iterator getContentsIt()
public java.util.Map getContentsMap()
public java.lang.String toString()
toString
in class java.lang.Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |