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.
>
>