You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by co...@apache.org on 2007/10/27 06:26:00 UTC

[CONF] Apache Tuscany: RDB DAS CPP - WorkingWithNameMapping (page created)

RDB DAS CPP - WorkingWithNameMapping (TUSCANY) created by Adriano Crestani
   http://cwiki.apache.org/confluence/display/TUSCANY/RDB+DAS+CPP+-+WorkingWithNameMapping

Content:
---------------------------------------------------------------------

h1. WorkingWithNameMapping

The default behavior for the RDB DAS is to map database names to SDO names. So, if a CUTSOMER table is read from the database then each row will be represented as a CUSTOMER DataObject. Likewise, if the CUSTOMER tabel has columns (ID, LASTNAME, ADDRESS) then CUSTOMER DataObject instances will have properties (ID, LASTNAME, ADDRESS). Database Table names map to DataObject Type names and database column names map to DataObject property names.

This implicit mapping of database and SDO names woks well but some developers will want explicit name mapping that allows the database and SDO names to vary. One typical example is that the database table and column names will be automatically converted to uppercase when DAS generates the SDO Types, but a developer might want to work with SDO Types and properties that are camelcased. So, database names CUSTOMER and LASTNAME might map to SDO names Customer and lastName.

The RDB DAS allows this type of explicit mapping via configuration (usually in the form of a XML config file). The following example illstrates the use of this feature:
{code}
DAS* das = DASImpl::getFactory().createDAS(Config("BooksConfigWithAlias.xml"), getConnection());

   CommandPtr select = das->getCommand("get book by ID equal 1");

   DataObjectPtr root = select->executeQuery();
   wstring author = root->getCString("Book[1]/Writer"));
{code}
Here is the associated configuration file:
{noformat}
<Config xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd">

       <Command name="get all books" SQL="SELECT * FROM BOOK"/>

       <Command name="get Cat in the Hat" SQL="SELECT * FROM BOOK WHERE NAME = 'Cat in the Hat'"/>

       <Command name="get book by ID equal 1" SQL="SELECT * FROM BOOK WHERE BOOK.BOOK_ID = 1"/>

       <Table tableName="BOOK" typeName="Book">
           <Column columnName="BOOK_ID" primaryKey="true"/>
           <Column columnName="AUTHOR" propertyName="Writer"/>
           <Column columnName="OCC" collision="true"/>
       </Table
   </Config>
{noformat}

---------------------------------------------------------------------
CONFLUENCE INFORMATION
This message is automatically generated by Confluence

Unsubscribe or edit your notifications preferences
   http://cwiki.apache.org/confluence/users/viewnotifications.action

If you think it was sent incorrectly contact one of the administrators
   http://cwiki.apache.org/confluence/administrators.action

If you want more information on Confluence, or have a bug to report see
   http://www.atlassian.com/software/confluence



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org