You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Sam Su <su...@gmail.com> on 2007/01/23 11:49:02 UTC

Tuscany DAS can't not return static DataObject???

Hi,  I would like to ask a urgent question:
Does Tuscany DAS support returning static DataObject???

/************************************xml config
file*************************************/

<?xml version="1.0" encoding="UTF-8"?><Config
xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <Command name="qryAllUsers" SQL="select USER_ID,PASSWORD,NAME,AVAILABLE
from CCP_USER" kind="Select"/>
    <Table tableName="CCP_USER" typeName="User">
        <Column columnName="USER_ID" primaryKey="true"/>
        <Column columnName="PASSWORD"/>
        <Column columnName="NAME"/>
        <Column columnName="AVAILABLE"/>
    </Table>
</Config>

/*******************following code can add a new record to database
successfully, 'User' class is static DataObject generated by
XSD2JavaGenerator,  *******/

        User user=(User)LibraryFactory.INSTANCE.createUser();
        user.setUSER_ID("sdo518");
        user.setPASSWORD("88888");
        user.setNAME("wo");
        user.setAVAILABLE("1");
            Connection conn=dataSource.getConnection();
            conn.setAutoCommit(false);
            DAS das=DAS.FACTORY.createDAS(new
ClassPathResource(schemaConfig).getInputStream(),conn);
            Command command=das.createCommand("select * from dual");
            DataObject root=command.executeQuery();
            root.getList(1).add(object);
            das.applyChanges(root);

Quesion:  Must I exeucte a query sql first if I want to add a new record to
database?  any other way to avoid this?
/************* following code can fetch record from database
successfully**************/

            Connection conn=dataSource.getConnection();
            conn.setAutoCommit(false);
            DAS das=DAS.FACTORY.createDAS(new
ClassPathResource(schemaConfig).getInputStream(),conn);
            Command command=das.getCommand(commandName);
            if(param!=null) command.setParameter(1,param);
            DataObject obj=command.executeQuery();
             List users=root.getList(1);
  for(int i=0;i<users.size();i++){
   DataObject obj=(DataObject)users.get(i);
   System.out.println(obj.get("USER_ID"));

  }

Qestion:  if i change  List users=root.getList(1) to  List users=
root.getList("User");  there is not record in the 'users' list,
                why?
               furthermore, how can I make it return User dataObject, so I
can use user.getUSER_ID() to get the property's value?

Appreciate your help in advance.

Re: Tuscany DAS can't not return static DataObject???

Posted by Kevin Williams <ke...@qwest.net>.
The test 
"org.apache.tuscany.das.rdb.test.TopDown.testUserProvidedModelDynamic()" 
demonstrates the use of generated SDOs with the DAS.


Adriano Crestani wrote:

> I've never tried to use static names for tables, so sorry, I cannot 
> answer
> your first question : (
>
> You may return a user DataObject:
>      root.getDataObject("User[i]"); // where "i" is a number that defines
> the user's position on the users list.
>
> Adriano Crestani
>
> On 1/23/07, Sam Su <su...@gmail.com> wrote:
>
>>
>> Hi,  I would like to ask a urgent question:
>> Does Tuscany DAS support returning static DataObject???
>>
>> /************************************xml config
>> file*************************************/
>>
>> <?xml version="1.0" encoding="UTF-8"?><Config
>> xsi:noNamespaceSchemaLocation="
>> http:///org.apache.tuscany.das.rdb/config.xsd"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>>
>>     <Command name="qryAllUsers" SQL="select
>> USER_ID,PASSWORD,NAME,AVAILABLE
>> from CCP_USER" kind="Select"/>
>>     <Table tableName="CCP_USER" typeName="User">
>>         <Column columnName="USER_ID" primaryKey="true"/>
>>         <Column columnName="PASSWORD"/>
>>         <Column columnName="NAME"/>
>>         <Column columnName="AVAILABLE"/>
>>     </Table>
>> </Config>
>>
>> /*******************following code can add a new record to database
>> successfully, 'User' class is static DataObject generated by
>> XSD2JavaGenerator,  *******/
>>
>>         User user=(User)LibraryFactory.INSTANCE.createUser();
>>         user.setUSER_ID("sdo518");
>>         user.setPASSWORD("88888");
>>         user.setNAME("wo");
>>         user.setAVAILABLE("1");
>>             Connection conn=dataSource.getConnection();
>>             conn.setAutoCommit(false);
>>             DAS das=DAS.FACTORY.createDAS(new
>> ClassPathResource(schemaConfig).getInputStream(),conn);
>>             Command command=das.createCommand("select * from dual");
>>             DataObject root=command.executeQuery();
>>             root.getList(1).add(object);
>>             das.applyChanges(root);
>>
>> Quesion:  Must I exeucte a query sql first if I want to add a new record
>> to
>> database?  any other way to avoid this?
>> /************* following code can fetch record from database
>> successfully**************/
>>
>>             Connection conn=dataSource.getConnection();
>>             conn.setAutoCommit(false);
>>             DAS das=DAS.FACTORY.createDAS(new
>> ClassPathResource(schemaConfig).getInputStream(),conn);
>>             Command command=das.getCommand(commandName);
>>             if(param!=null) command.setParameter(1,param);
>>             DataObject obj=command.executeQuery();
>>              List users=root.getList(1);
>>   for(int i=0;i<users.size();i++){
>>    DataObject obj=(DataObject)users.get(i);
>>    System.out.println(obj.get("USER_ID"));
>>
>>   }
>>
>> Qestion:  if i change  List users=root.getList(1) to  List users=
>> root.getList("User");  there is not record in the 'users' list,
>>                 why?
>>                furthermore, how can I make it return User dataObject, 
>> so I
>> can use user.getUSER_ID() to get the property's value?
>>
>> Appreciate your help in advance.
>>
>>
>



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


Re: Tuscany DAS can't not return static DataObject???

Posted by Adriano Crestani <ad...@gmail.com>.
I've never tried to use static names for tables, so sorry, I cannot answer
your first question : (

You may return a user DataObject:
      root.getDataObject("User[i]"); // where "i" is a number that defines
the user's position on the users list.

Adriano Crestani

On 1/23/07, Sam Su <su...@gmail.com> wrote:
>
> Hi,  I would like to ask a urgent question:
> Does Tuscany DAS support returning static DataObject???
>
> /************************************xml config
> file*************************************/
>
> <?xml version="1.0" encoding="UTF-8"?><Config
> xsi:noNamespaceSchemaLocation="
> http:///org.apache.tuscany.das.rdb/config.xsd"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>
>     <Command name="qryAllUsers" SQL="select
> USER_ID,PASSWORD,NAME,AVAILABLE
> from CCP_USER" kind="Select"/>
>     <Table tableName="CCP_USER" typeName="User">
>         <Column columnName="USER_ID" primaryKey="true"/>
>         <Column columnName="PASSWORD"/>
>         <Column columnName="NAME"/>
>         <Column columnName="AVAILABLE"/>
>     </Table>
> </Config>
>
> /*******************following code can add a new record to database
> successfully, 'User' class is static DataObject generated by
> XSD2JavaGenerator,  *******/
>
>         User user=(User)LibraryFactory.INSTANCE.createUser();
>         user.setUSER_ID("sdo518");
>         user.setPASSWORD("88888");
>         user.setNAME("wo");
>         user.setAVAILABLE("1");
>             Connection conn=dataSource.getConnection();
>             conn.setAutoCommit(false);
>             DAS das=DAS.FACTORY.createDAS(new
> ClassPathResource(schemaConfig).getInputStream(),conn);
>             Command command=das.createCommand("select * from dual");
>             DataObject root=command.executeQuery();
>             root.getList(1).add(object);
>             das.applyChanges(root);
>
> Quesion:  Must I exeucte a query sql first if I want to add a new record
> to
> database?  any other way to avoid this?
> /************* following code can fetch record from database
> successfully**************/
>
>             Connection conn=dataSource.getConnection();
>             conn.setAutoCommit(false);
>             DAS das=DAS.FACTORY.createDAS(new
> ClassPathResource(schemaConfig).getInputStream(),conn);
>             Command command=das.getCommand(commandName);
>             if(param!=null) command.setParameter(1,param);
>             DataObject obj=command.executeQuery();
>              List users=root.getList(1);
>   for(int i=0;i<users.size();i++){
>    DataObject obj=(DataObject)users.get(i);
>    System.out.println(obj.get("USER_ID"));
>
>   }
>
> Qestion:  if i change  List users=root.getList(1) to  List users=
> root.getList("User");  there is not record in the 'users' list,
>                 why?
>                furthermore, how can I make it return User dataObject, so I
> can use user.getUSER_ID() to get the property's value?
>
> Appreciate your help in advance.
>
>