summaryrefslogtreecommitdiffstats
path: root/site/trunk/site-publish/named-parameters-support.html
diff options
context:
space:
mode:
Diffstat (limited to 'site/trunk/site-publish/named-parameters-support.html')
-rw-r--r--site/trunk/site-publish/named-parameters-support.html195
1 files changed, 195 insertions, 0 deletions
diff --git a/site/trunk/site-publish/named-parameters-support.html b/site/trunk/site-publish/named-parameters-support.html
new file mode 100644
index 0000000000..5c6601450a
--- /dev/null
+++ b/site/trunk/site-publish/named-parameters-support.html
@@ -0,0 +1,195 @@
+
+<!--
+
+ 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 : Named parameters support</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=66139">
+ <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="Named parameters support">Named parameters support</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="Namedparameterssupport-Namedparameterssupport"></A>Named parameters support</H1>
+
+<P>JDB API requires indexed parameter setting. i.e. statement.setXXX(int, value). But in the DAS client<BR>
+it may be helpful to provide named parameters setting on the command. This is particularly convenient<BR>
+when the table involves many columns during insert/update. </P>
+
+<P>Below are config schema portion supporting this.</P>
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>&lt;xsd:complexType name=&quot;Parameter&quot;&gt;
+ &lt;xsd:attribute name=&quot;name&quot; type=&quot;xsd:string&quot;/&gt;
+ &lt;xsd:attribute name=&quot;columnType&quot; type=&quot;xsd:string&quot;/&gt;
+ &lt;xsd:attribute name=&quot;direction&quot; type=&quot;xsd:string&quot; default=&quot;IN&quot;/&gt;
+ &lt;xsd:attribute name=&quot;index&quot; type=&quot;xsd:int&quot;/&gt;
+&lt;/xsd:complexType&gt;
+&lt;xsd:complexType name=&quot;Parameters&quot;&gt;
+ &lt;xsd:sequence&gt;
+ &lt;xsd:element maxOccurs=&quot;unbounded&quot; minOccurs=&quot;0&quot; name=&quot;Parameter&quot; type=&quot;config:Parameter&quot;/&gt;
+ &lt;/xsd:sequence&gt;
+&lt;/xsd:complexType&gt;
+&lt;xsd:complexType name=&quot;Create&quot;&gt;
+ &lt;xsd:sequence&gt;
+ &lt;xsd:element maxOccurs=&quot;1&quot; minOccurs=&quot;0&quot; name=&quot;Parameters&quot; type=&quot;config:Parameters&quot;/&gt;
+ &lt;/xsd:sequence&gt;
+ &lt;xsd:attribute name=&quot;sql&quot; type=&quot;xsd:string&quot;/&gt;
+&lt;/xsd:complexType&gt;
+&lt;xsd:complexType name=&quot;Update&quot;&gt;
+ &lt;xsd:sequence&gt;
+ &lt;xsd:element maxOccurs=&quot;1&quot; minOccurs=&quot;0&quot; name=&quot;Parameters&quot; type=&quot;config:Parameters&quot;/&gt;
+ &lt;/xsd:sequence&gt;
+ &lt;xsd:attribute name=&quot;sql&quot; type=&quot;xsd:string&quot;/&gt;
+&lt;/xsd:complexType&gt;
+&lt;xsd:complexType name=&quot;Delete&quot;&gt;
+ &lt;xsd:sequence&gt;
+ &lt;xsd:element maxOccurs=&quot;1&quot; minOccurs=&quot;0&quot; name=&quot;Parameters&quot; type=&quot;config:Parameters&quot;/&gt;
+ &lt;/xsd:sequence&gt;
+ &lt;xsd:attribute name=&quot;sql&quot; type=&quot;xsd:string&quot;/&gt;
+&lt;/xsd:complexType&gt;
+&lt;xsd:complexType name=&quot;Command&quot;&gt;
+ &lt;xsd:sequence&gt;
+ &lt;xsd:element maxOccurs=&quot;unbounded&quot; minOccurs=&quot;0&quot; name=&quot;Parameter&quot; type=&quot;config:Parameter&quot;/&gt;
+ &lt;xsd:element maxOccurs=&quot;unbounded&quot; minOccurs=&quot;0&quot; name=&quot;ResultDescriptor&quot; type=&quot;config:ResultDescriptor&quot;/&gt;
+ &lt;/xsd:sequence&gt;
+ &lt;xsd:attribute name=&quot;name&quot; type=&quot;xsd:string&quot;/&gt;
+ &lt;xsd:attribute name=&quot;SQL&quot; type=&quot;xsd:string&quot;/&gt;
+ &lt;xsd:attribute name=&quot;kind&quot; type=&quot;xsd:string&quot;/&gt;
+&lt;/xsd:complexType&gt;
+</PRE>
+</DIV></DIV>
+
+<P>User can do Command.setParameter(String name, Object value), getParameter(String name). Indexed set/getParameter() is available as before. Also &lt;create&gt;, &lt;update&gt;, &lt;delete&gt; from Config support named parameters.</P>
+
+<P>example config:</P>
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>&lt;Config xmlns=&quot;http:///org.apache.tuscany.das.rdb/config.xsd&quot;&gt;
+&lt;Table tableName=&quot;CUSTOMER&quot;&gt;
+ &lt;create sql=&quot;insert into customer values (?, ?, ?)&quot; &gt;
+ &lt;Parameters&gt;
+ &lt;Parameter name=&quot;ID&quot; index=&quot;1&quot;/&gt;
+ &lt;Parameter name=&quot;LASTNAME&quot; index=&quot;1&quot;/&gt;
+ &lt;Parameter name=&quot;ADDRESS&quot; index=&quot;3&quot;/&gt;
+ &lt;/Parameters&gt;
+ &lt;/create&gt;
+&lt;/Table&gt;
+&lt;Command name=&quot;createCustomer&quot; SQL=&quot;insert into CUSTOMER values ( ?, ?, ?)&quot; kind=&quot;Insert&quot;&gt;
+ &lt;Parameter name=&quot;ID&quot; index=&quot;1&quot;/&gt;
+ &lt;Parameter name=&quot;LASTNAME&quot; index=&quot;2&quot;/&gt;
+ &lt;Parameter name=&quot;ADDRESS&quot; index=&quot;3&quot;/&gt;
+&lt;/Command&gt;
+</PRE>
+</DIV></DIV>
+
+<P>if +ve index is specified in Parameter, it is used, else auto-increment is used. As List is an ordered collection, the sequence(index value) appearing in the cofig file will be maintained. Partially specifying indexes is not supported (i.e. give index for 2 out of 3 params and leave one without it, is not supported)<BR>
+Also, if indexes are specified, the ordering in config is flexible, i.e. below is valid.</P>
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>&lt;Command name=&quot;createCustomer&quot; SQL=&quot;insert into CUSTOMER values ( ?, ?, ?)&quot; kind=&quot;Insert&quot;&gt;
+ &lt;Parameter name=&quot;LASTNAME&quot; index=&quot;2&quot;/&gt;
+ &lt;Parameter name=&quot;ID&quot; index=&quot;1&quot;/&gt;
+ &lt;Parameter name=&quot;ADDRESS&quot; index=&quot;3&quot;/&gt;
+&lt;/Command&gt;
+</PRE>
+</DIV></DIV>
+
+<P><B>Note</B> Convention over config is followed, if Parameters are not defined in config, the sequence<BR>
+should match the table columns <B>convention</B>,else user should specify params on command in config and specify index attributes in them <B>config</B></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>