summaryrefslogtreecommitdiffstats
path: root/site/trunk/site-publish/workingwithgenerateddatabasekeys.html
diff options
context:
space:
mode:
Diffstat (limited to 'site/trunk/site-publish/workingwithgenerateddatabasekeys.html')
-rw-r--r--site/trunk/site-publish/workingwithgenerateddatabasekeys.html149
1 files changed, 149 insertions, 0 deletions
diff --git a/site/trunk/site-publish/workingwithgenerateddatabasekeys.html b/site/trunk/site-publish/workingwithgenerateddatabasekeys.html
new file mode 100644
index 0000000000..c3b4f13b21
--- /dev/null
+++ b/site/trunk/site-publish/workingwithgenerateddatabasekeys.html
@@ -0,0 +1,149 @@
+
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE- 2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+ <HEAD>
+ <!-- generateKeywords macro -->
+ <META name="description" content="Apache Tuscany">
+ <META name="keywords" content="apache, apache tuscany, tuscany, service, services, fabric, soa, service oriented architecture, sca, service component architecture, das, sdo, csa, ruby, opensource">
+ <!-- generateKeywords macro end -->
+
+ <LINK type="text/css" rel="stylesheet" href="http://tuscany.apache.org/stylesheets/default.css">
+ <LINK rel="SHORTCUT ICON" href="https://cwiki.apache.org/confluence/display/TUSCANY/$images/favicon.ico">
+ <TITLE>Apache Tuscany : WorkingWithGeneratedDatabaseKeys</TITLE>
+ <META http-equiv="Content-Type" content="text/html;charset=UTF-8"></HEAD>
+
+ <BODY onload="init()">
+ <!-- topNav macro -->
+ <TABLE valign="top" border="0" cellspacing="0" cellpadding="0" width="100%" background="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg">
+ <TR>
+ <TD valing="top" align="left">
+ <A href="https://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey=TUSCANY&title=$siteroot"><IMG src="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg" height="91" width="25" border="0"></A>
+ </TD>
+ <TD>
+ <A href="http://tuscany.apache.org/"><IMG src="http://tuscany.apache.org/images/TuscanyLogo.jpg" border="0"></A>
+ </TD>
+
+ <TD width="100%">
+ &nbsp;
+ </TD>
+
+ <!-- Adds the edit page link to the top banner-->
+ <TD valign="bottom">
+ <DIV style="padding: 2px 10px; margin: 0px;">
+ <A href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=52826">
+ <IMG src="http://tuscany.apache.org/images/notep_16.gif" height="16" width="16" border="0" align="absmiddle" title="Edit Page"></A>
+ </DIV>
+ </TD>
+
+ </TR>
+ </TABLE>
+ <!-- topNav macro end -->
+
+ <!-- breadCrumbs macro -->
+ <TABLE border="0" cellpadding="2" cellspacing="0" width="100%">
+ <TR class="topBar">
+ <TD align="left" valign="middle" class="topBarDiv" nowrap="true" width="100%">
+ &nbsp;<A href="home.html" title="Apache Tuscany">Apache Tuscany</A>&nbsp;&gt;&nbsp;<A href="home.html" title="Home">Home</A>&nbsp;&gt;&nbsp;<A href="das-overview.html" title="DAS Overview">DAS Overview</A>&nbsp;&gt;&nbsp;<A href="das-java.html" title="DAS Java">DAS Java</A>&nbsp;&gt;&nbsp;<A href="das-java-documentation-menu.html" title="DAS Java Documentation Menu">DAS Java Documentation Menu</A>&nbsp;&gt;&nbsp;<A href="das-java-developer-guide.html" title="DAS Java Developer Guide">DAS Java Developer Guide</A>&nbsp;&gt;&nbsp;<A href="rdb-das-java.html" title="RDB DAS Java">RDB DAS Java</A>&nbsp;&gt;&nbsp;<A href="rdb-das-user-guide.html" title="RDB DAS - User Guide">RDB DAS - User Guide</A>&nbsp;&gt;&nbsp;<A href="" title="WorkingWithGeneratedDatabaseKeys">WorkingWithGeneratedDatabaseKeys</A>
+ </TD>
+
+ <TD align="right" valign="middle" class="topBarDiv" align="left" nowrap="true">
+ <A href="http://mail-archives.apache.org/mod_mbox/tuscany-user">User List</A> | <A href="http://mail-archives.apache.org/mod_mbox/tuscany-dev">Dev List</A> | <A href="http://issues.apache.org/jira/browse/Tuscany">Issue Tracker</A>&nbsp;&nbsp;
+ </TD>
+ </TR>
+ </TABLE>
+ <!-- breadCrumbs macro end -->
+
+
+ <TABLE border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">
+ <TR>
+ <TD align="left" valign="top">
+
+ <!-- pageContent macro -->
+ <DIV id="PageContent">
+
+ <DIV class="pagecontent">
+ <DIV class="wiki-content">
+ <H1><A name="WorkingWithGeneratedDatabaseKeys-WorkingWithGeneratedDatabaseKeys"></A>WorkingWithGeneratedDatabaseKeys</H1>
+<P>The RDB DAS provides the ability to work with <A href="http://en.wikipedia.org/wiki/Surrogate_key" class="external-link" rel="nofollow">database generated keys</A>. A piece of configuration information , typically via a configuration XML file, is used to indicate to the DAS that a column value is generated by the database. This piece of information is necessary when new rows are inserted to the database since the DAS will generate an INSERT statement that does not include the generated column.</P>
+
+<P>The follwing example illustrates the use of generated keys with the DAS:</P>
+<DIV class="panel" style="border-width: 1px;"><DIV class="panelContent">
+<P> DAS das = DAS.FACTORY.createDAS(getConfig(&quot;CompanyConfig.xml&quot;), getConnection());<BR>
+ Command select = das.getCommand(&quot;all companies&quot;);<BR>
+ DataObject root = select.executeQuery();</P>
+
+<P> // Create a new Company<BR>
+ DataObject company = root.createDataObject(&quot;COMPANY&quot;);<BR>
+ //Initialize properties of the new company<BR>
+ company.setString(&quot;NAME&quot;, &quot;Do-rite Pest Control&quot;);</P>
+
+<P> // Flush changes<BR>
+ das.applyChanges(root);</P>
+
+<P> // Inspect the id<BR>
+ Integer id = (Integer) company.get(&quot;ID&quot;);</P>
+</DIV></DIV>
+<P>The first line creates a DAS instance form the factory passing it a stream over the file &quot;CompanyConfig.xml&quot;. Here are the contents of that file: </P>
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>&lt;Config xsi:noNamespaceSchemaLocation=&quot;http:///org.apache.tuscany.das.rdb/config.xsd&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;
+
+ &lt;Command name=&quot;all companies&quot; SQL=&quot;select * from COMPANY&quot; kind=&quot;Select&quot;/&gt;
+
+ &lt;Table tableName=&quot;COMPANY&quot;&gt;
+ &lt;Column columnName=&quot;ID&quot; primaryKey=&quot;true&quot; generated=&quot;true&quot;/&gt;
+ &lt;/Table&gt;
+
+ &lt;/Config&gt;
+</PRE>
+</DIV></DIV>
+<P>Note that only the 'ID' column is specified in the file since this is the only column we need to attach any information to. Notice also that when the new Company instance in created, no value is assigned to the 'ID' property since this value will be supplied by the database when the insert operation is performed.</P>
+
+<P>As part of the &quot;apply changes&quot; processing, the DAS will propogate the database-supplied key values back to the respective DataObjects in the graph. The purpose of this is to make the values available to the application if needed.</P>
+
+<P>This simple example only demosntrates the insertion of a flat graph of data since the graph consists only of Company instances. But, the DAS is capable of more complex scenarios. The DAS can also handle graphs of related DataObjects each with generated columns. </P>
+ </DIV>
+ </DIV>
+ </DIV>
+ <!-- pageContent macro end -->
+
+ </TD>
+ </TR>
+ </TABLE>
+
+ <!-- footer macro -->
+ <SCRIPT src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </SCRIPT>
+ <SCRIPT type="text/javascript">
+ _uacct = "UA-1174707-5";
+ urchinTracker();
+ </SCRIPT>
+
+ <A href="http://www.statcounter.com/" target="_blank"><IMG src="http://c26.statcounter.com/counter.php?sc_project=2619156&java=0&security=94bd7e7d&invisible=0" alt="website stats" border="0"></A>
+
+ <DIV class="footer">
+ Copyright � 2003-2012, The Apache Software Foundation&nbsp;&nbsp;</BR>
+ Apache Tuscany and the Apache Tuscany project logo are trademarks of The Apache Software Foundation.
+ </DIV>
+ <!-- footer macro end -->
+
+ </BODY>
+</HTML>