*
* @param String confFilename Dateiname der Konfigurationsdatei
*/
- public Database() {
- //theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("Database.Logfile"));
- theLog = Logfile.getInstance(this.getClass().getName());
- String database_username=DatabaseConfig.getProp("Database.Username");
- String database_password=DatabaseConfig.getProp("Database.Password");
- String database_host=DatabaseConfig.getProp("Database.Host");
- String theAdaptorName=DatabaseConfig.getProp("Database.Adaptor");
+ public Database() throws StorageObjectException {
+ theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("Database.Logfile"));
+ String database_username=MirConfig.getProp("Database.Username");
+ String database_password=MirConfig.getProp("Database.Password");
+ String database_host=MirConfig.getProp("Database.Host");
+ String theAdaptorName=MirConfig.getProp("Database.Adaptor");
try {
theEntityClass = Class.forName("mir.entity.GenericEntity");
theAdaptor = (DatabaseAdaptor)Class.forName(theAdaptorName).newInstance();
- defaultLimit = Integer.parseInt(DatabaseConfig.getProp("Database.Limit"));
+ defaultLimit = Integer.parseInt(MirConfig.getProp("Database.Limit"));
database_driver=theAdaptor.getDriver();
database_url=theAdaptor.getURL(database_username,database_password,database_host);
theLog.printDebugInfo("adding Broker with: " +database_driver+":"+database_url );
- DatabaseConfig.addBroker(database_driver,database_url);
- myBroker=DatabaseConfig.getBroker();
+ MirConfig.addBroker(database_driver,database_url);
+ myBroker=MirConfig.getBroker();
}
catch (Exception e){
theLog.printError("Bei Konstruktion von Database() with " + theAdaptorName + " -- " +e.toString());
+ throw new StorageObjectException(e.toString());
}
}
//cache
invalidatePopupCache();
try {
- HashMap theEntityValues = theEntity.getValues();
ArrayList streamedInput = theEntity.streamedInput();
StringBuffer f = new StringBuffer();
StringBuffer v = new StringBuffer();
aValue = "?";
}
else {
- if (theEntityValues.containsKey(aField)) {
- aValue = "'" + StringUtil.quote((String)theEntityValues.get(aField))
+ if (theEntity.hasValueForField(aField)) {
+ aValue = "'" + StringUtil.quote((String)theEntity.getValue(aField))
+ "'";
}
}
pstmt = con.prepareStatement(sql);
if (streamedInput != null) {
for (int i = 0; i < streamedInput.size(); i++) {
- String inputString = (String)theEntityValues.get(streamedInput.get(i));
+ String inputString = (String)theEntity.getValue((String)streamedInput.get(i));
pstmt.setBytes(i + 1, inputString.getBytes());
}
}
Connection con = null;
PreparedStatement pstmt = null;
ArrayList streamedInput = theEntity.streamedInput();
- HashMap theEntityValues = theEntity.getValues();
String id = theEntity.getId();
String aField;
StringBuffer fv = new StringBuffer();
// only normal cases
if (!(aField.equals(thePKeyName) || aField.equals("webdb_create") ||
aField.equals("webdb_lastchange") || (streamedInput != null && streamedInput.contains(aField)))) {
- if (theEntityValues.containsKey(aField)) {
+ if (theEntity.hasValueForField(aField)) {
if (firstField == false) {
fv.append(", ");
}
else {
firstField = false;
}
- fv.append(aField).append("='").append(StringUtil.quote((String)theEntityValues.get(aField))).append("'");
+ fv.append(aField).append("='").append(StringUtil.quote((String)theEntity.getValue(aField))).append("'");
}
}
}
pstmt = con.prepareStatement(sql.toString());
if (streamedInput != null) {
for (int i = 0; i < streamedInput.size(); i++) {
- String inputString = (String)theEntityValues.get(streamedInput.get(i));
+ String inputString = theEntity.getValue((String)streamedInput.get(i));
pstmt.setBytes(i + 1, inputString.getBytes());
}
}
* eine SimpleList mit Standard-Popupdaten erzeugt werden koennen soll.
* @return null
*/
- public SimpleList getPopupData () {
+ public SimpleList getPopupData () throws StorageObjectException {
return null;
}
* @param hasNullValue Wenn true wird eine leerer Eintrag fuer die Popups erzeugt.
* @return SimpleList Gibt freemarker.template.SimpleList zurueck.
*/
- public SimpleList getPopupData (String name, boolean hasNullValue) {
+ public SimpleList getPopupData (String name, boolean hasNullValue)
+ throws StorageObjectException {
return getPopupData(name, hasNullValue, null);
}
* @param where Schraenkt die Selektion der Datensaetze ein.
* @return SimpleList Gibt freemarker.template.SimpleList zurueck.
*/
- public SimpleList getPopupData (String name, boolean hasNullValue, String where) {
- return getPopupData(name, hasNullValue, where, null);
+ public SimpleList getPopupData (String name, boolean hasNullValue, String where) throws StorageObjectException {
+ return getPopupData(name, hasNullValue, where, null);
}
/**
* @param order Gibt ein Feld als Sortierkriterium an.
* @return SimpleList Gibt freemarker.template.SimpleList zurueck.
*/
- public SimpleList getPopupData (String name, boolean hasNullValue, String where,
- String order) {
+ public SimpleList getPopupData (String name, boolean hasNullValue, String where, String order) throws StorageObjectException {
// caching
if (hasPopupCache && popupCache != null)
return popupCache;
}
} catch (Exception e) {
theLog.printDebugInfo(e.toString());
+ throw new StorageObjectException(e.toString());
} finally {
freeConnection(con, stmt);
}
pstmt = con.prepareStatement(sql);
result = pstmt.executeUpdate();
}
- catch (Exception e) {theLog.printDebugInfo("settimage :: setImage gescheitert: "+e.toString());}
+ catch (Exception e) {
+ theLog.printDebugInfo("settimage :: setImage gescheitert: "+e.toString());
+ throw new StorageObjectException("executeUpdate failed: "+e.toString());
+ }
finally { freeConnection(con,pstmt); }
theLog.printInfo((new java.util.Date().getTime() - startTime) + "ms. for: " + sql);
return result;
/**
* Datenbankverbindung wird geschlossen
*/
- public void disconnectPool () {
+ public void disconnectPool () throws StorageObjectException {
try {
myBroker.destroy(100);
} catch (SQLException sqe) {
- ;
+ throwSQLException(sqe, "disconnectPool");
}
}
* @param con Connection zur Datenbank
* @param stmt Statement-Objekt
*/
- public void freeConnection (Connection con, Statement stmt) {
+ public void freeConnection (Connection con, Statement stmt)
+ throws StorageObjectException {
try {
if (stmt != null)
stmt.close();
} catch (SQLException e1) {
theLog.printDebugInfo(e1.toString());
+ throw new StorageObjectException("DB, in freeConnection: "+e1.toString());
}
if (con != null)
myBroker.freeConnection(con);
- else
+ else {
theLog.printDebugInfo("Con was null!");
+ throw new StorageObjectException("Con was null!");
+ }
}
/**
sqe.toString());
}
+ protected void _throwStorageObjectException (Exception e, String wo) throws StorageObjectException {
+ if (e != null) {
+ theLog.printError(e.toString()+ wo);
+ throw new StorageObjectException(wo + e.toString());
+ } else {
+ theLog.printError(wo);
+ throw new StorageObjectException(wo);
+ }
+
+ }
+
/**
* Loggt Fehlermeldung mit dem Parameter Message und wirft dannach eine StorageObjectException
* @param message Nachricht mit dem Fehler
* @exception StorageObjectException
*/
void throwStorageObjectException (String message) throws StorageObjectException {
- theLog.printError(message);
- throw new StorageObjectException(message);
+ _throwStorageObjectException(null, message);
}
}