Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## fr.gouv.culture.sdx.utils.database
Class ORACLEDatabase

    java.lang.Object
      fr.gouv.culture.sdx.utils.AbstractSdxObject
          fr.gouv.culture.sdx.utils.rdbms.JDBC
              fr.gouv.culture.sdx.utils.rdbms.DataSourceComponentBacked
                  fr.gouv.culture.sdx.utils.database.AbstractJDBCDatabase
                      fr.gouv.culture.sdx.utils.database.JDBCDatabase
                          fr.gouv.culture.sdx.utils.database.ORACLEDatabase

All Implemented Interfaces:
  org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.context.Contextualizable, Database, Describable, Encodable, Identifiable, Localizable, org.apache.avalon.framework.logger.LogEnabled, Saveable, SdxObject, org.apache.avalon.framework.service.Serviceable, org.apache.excalibur.xml.sax.XMLizable

public class ORACLEDatabase
extends JDBCDatabase

An Oracle implementation of the SDX Database interface. Tested with Oracle 10g under Windows. Should work with many Oracle versions.

Nested Class Summary

Nested classes inherited from class fr.gouv.culture.sdx.utils.rdbms.JDBC
`JDBC.QueryExecutor, JDBC.Template`

Nested classes inherited from class fr.gouv.culture.sdx.utils.SdxObject
`SdxObject.ConfigurationNode`

Field Summary

Fields inherited from class fr.gouv.culture.sdx.utils.database.AbstractJDBCDatabase
`_searchModes, COLUMN_PARAM_INDEX_FIELD_ID, COLUMN_PARAM_INDEX_FIELD_PROPERTY_NAME, COLUMN_PARAM_INDEX_FIELD_PROPERTY_VALUE, FIELD_ID, FIELD_PROPERTY_NAME, FIELD_PROPERTY_VALUE`

Fields inherited from class fr.gouv.culture.sdx.utils.rdbms.DataSourceComponentBacked
`ATTRIBUTE_DSI, dbSelector, dsi`

Fields inherited from class fr.gouv.culture.sdx.utils.rdbms.JDBC
`tableName`

Fields inherited from class fr.gouv.culture.sdx.utils.AbstractSdxObject
`_configuration, _context, _description, _encoding, _id, _locale, _logger, _manager, _xmlizable_objects, _xmlLang, isToSaxInitialized`

Fields inherited from interface fr.gouv.culture.sdx.utils.database.Database
`CLASS_NAME_SUFFIX, DATABASE_DIR_PATH, PACKAGE_QUALNAME, SEARCH_MODE_AND, SEARCH_MODE_NOT, SEARCH_MODE_OR`

Fields inherited from interface fr.gouv.culture.sdx.utils.Encodable
`DEFAULT_ENCODING`

Fields inherited from interface fr.gouv.culture.sdx.utils.save.Saveable
`ALL_SAVE_ATTRIB, PATH_ATTRIB, SAVE_DIRECTORY_PARAM`

Constructor Summary
`ORACLEDatabase()`

Method Summary
`protected void` | `createIndicies(java.sql.Connection conn)` Creates the index on the ID field.
`protected java.lang.String` | `getCreateIndiciesQuery(java.lang.String fieldName)` For performance reasons, we create an index on the ID field.
`protected java.lang.String` | `getTableCreationQuery()` Returns the CREATE TABLE statement.
`void` | `init()` Initialise l'entrepot.
`void` | `save(DatabaseEntity ent)` We slightly modify the default behaviour to insert a dummy property when an entity has no property defined.

Methods inherited from class fr.gouv.culture.sdx.utils.database.JDBCDatabase
`getDatabaseDirectoryName, getEntriesWithLimitQuery, initToSax, initVolatileObjectsToSax, optimize`

Methods inherited from class fr.gouv.culture.sdx.utils.database.AbstractJDBCDatabase
`addProperty, backup, configure, delete, delete, empty, entityExists, getAllEntitiesQuery, getClassNameSuffix, getConnection, getDeleteAllQuery, getEntities, getEntities, getEntity, getEntity, getEntityDeleteQuery, getEntityGetQuery, getEntityIds, getProperties, getPropertyAddQuery, getPropertyRemoveQueryWithId, getPropertyRemoveQueryWithoutId, getPropertyValue, getPropertyValues, getWildcardSearchToken, releaseConnection, removeProperty, removeProperty, restore, search, search, searchWithParams, size, update`

Methods inherited from class fr.gouv.culture.sdx.utils.rdbms.DataSourceComponentBacked
`finalize, getDataSourceComponent, releaseDataSourceComponent, service`

Methods inherited from class fr.gouv.culture.sdx.utils.rdbms.JDBC
`createTable, getTableName, handleUnsupportedTokens`

Methods inherited from class fr.gouv.culture.sdx.utils.AbstractSdxObject
`configureDescription, contextualize, enableLogging, getBaseAttributes, getConfiguration, getContext, getDescription, getEncoding, getId, getLocale, getLog, getServiceManager, getXmlLang, setDescription, setEncoding, setId, setLocale, setUpSdxObject, setUpSdxObject, setXmlLang, toSAX, verifyConfigurationResources`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface fr.gouv.culture.sdx.utils.SdxObject
`getLog`

Methods inherited from interface org.apache.avalon.framework.logger.LogEnabled
`enableLogging`

Methods inherited from interface org.apache.avalon.framework.context.Contextualizable
`contextualize`

Methods inherited from interface org.apache.avalon.framework.service.Serviceable
`service`

Methods inherited from interface fr.gouv.culture.sdx.utils.Identifiable
`getId, setId`

Methods inherited from interface fr.gouv.culture.sdx.utils.Describable
`getDescription, setDescription`

Methods inherited from interface fr.gouv.culture.sdx.utils.Encodable
`getEncoding, setEncoding`

Methods inherited from interface fr.gouv.culture.sdx.utils.Localizable
`getLocale, getXmlLang, setLocale, setXmlLang`

Methods inherited from interface org.apache.excalibur.xml.sax.XMLizable
`toSAX`

Constructor Detail

### ORACLEDatabase

    public ORACLEDatabase()

Method Detail

### getTableCreationQuery

    protected java.lang.String getTableCreationQuery()

  Returns the CREATE TABLE statement. For Oracle, we do not use a sequence, we define a PRIMARY KEY on the three fields (ID, NAME, VALUE). We force NOT NULL because the three fields are part of the PRIMARY KEY, and thus Oracle forces them to be not null anyway.

  Overrides:
    `getTableCreationQuery` in class `AbstractJDBCDatabase`

### getCreateIndiciesQuery

    protected java.lang.String getCreateIndiciesQuery(java.lang.String fieldName)

  For performance reasons, we create an index on the ID field.

  Overrides:
    `getCreateIndiciesQuery` in class `AbstractJDBCDatabase`

### init

    public void init()
              throws SDXException

  Initialise l'entrepot. Si la table n'existe pas, elle est creee. On surcharge cette methode car Oracle reagit bizarrement au DatabaseMetaData. On fait simplement une requete.

  Specified by:
    `init` in interface `Database`
  Overrides:
    `init` in class `AbstractJDBCDatabase`
  Throws:
    `SDXException`

### createIndicies

    protected void createIndicies(java.sql.Connection conn)
                           throws SDXException

  Creates the index on the ID field.

  Overrides:
    `createIndicies` in class `AbstractJDBCDatabase`
  Throws:
    `SDXException`

### save

    public void save(DatabaseEntity ent)
              throws SDXException

  We slightly modify the default behaviour to insert a dummy property when an entity has no property defined. In the normal code, an empty string is used, but the Oracle JDBC driver inserts null instead of empty spaces, thus violating the primary key constraints (no null) on the three fields.

  Specified by:
    `save` in interface `Database`
  Overrides:
    `save` in class `AbstractJDBCDatabase`
  Throws:
    `SDXException`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2007 Ministere de la culture et de la communication / AJLSM. All Rights Reserved.