Why do you want the DS? Generally you just use the DataContext.

You can lookup the DS from DC though:

DataSource ds = dataContext.getParentDomain().getNode("node_name");

Bob

On 25/01/2011 20:31, Luu Thang wrote:
> *@Gilberto:* Thanks for your example. But it's seem difficult with me.
> 
> *@Bob Schellink:* Could you tell me with some detail ?
> 
> I was read Click + Cayenne tutorial and I was create a sample app as below:
> 
> *1/ Create in test of MySQL RDBMS*
> CREATE TABLE `test`.`news` (
> `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
> `title` VARCHAR( 255 ) NOT NULL
> ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
> 
> *2/ Create app in Netbeans IDE 6.9 as below*
> 
> *Web Pages*
>     META-INF
>     WEB-INF
>         border-template.htm
>         home.htm
>         news.htm
>         redirect.htm
> 
> *Source Packages*
> *<default package>*
>     ClickSampleDomainMap.map.xml
>     cayenne.xml
> *mysite.domain*
>     BaseEntity.java
>     News.java
> *mysite.domain.auto*
>     _News.java
> *mysite.page*
>     BorderPage.java
>     HomePage.java
>     NewsPage.java
> *mysite.service*
>     NewsService.java
> *mysite.util*
>     DatabaseInitListener.java
> --
> *3/ Some file detail*
> 
> *a/ cayenne.xml*
> 
> <?xml version="1.0" encoding="utf-8"?>
> <domains project-version="3.0.0.1">
> <domain name="ClickSampleDomain">
>     <map name="ClickSampleDomainMap" location="ClickSampleDomainMap.map.xml"/>
> 
>     <node name="ClickSampleDomainNode"
>          datasource="jdbc/TestDB"
>          factory="org.apache.cayenne.conf.JNDIDataSourceFactory">
>             <map-ref name="ClickSampleDomainMap"/>
>      </node>
> </domain>
> </domains>
> 
> --
> 
> *b/ ClickSampleDomainMap.map.xml*
> 
> <?xml version="1.0" encoding="utf-8"?>
> <data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap";
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>   xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap
> http://cayenne.apache.org/schema/3.0/modelMap.xsd";
>   project-version="3.0.0.1">
>     <property name="defaultPackage" value="mysite.domain"/>
>     <property name="defaultSuperclass" value="mysite.domain.BaseEntity"/>
>     <db-entity name="news" catalog="test">
>         <db-attribute name="id" type="BIGINT" isPrimaryKey="true" 
> isMandatory="true" length="10"/>
>         <db-attribute name="title" type="LONGVARCHAR" isMandatory="true" 
> length="65535"/>
>     </db-entity>
>     <obj-entity name="News" className="mysite.domain.News" dbEntityName="news"
> superClassName="mysite.domain.BaseEntity">
>         <obj-attribute name="title" type="java.lang.String" 
> db-attribute-path="title"/>
>     </obj-entity>
>         <query name="NewsQuery" 
> factory="org.apache.cayenne.map.SelectQueryBuilder"
> root="obj-entity" root-name="News">
>     </query>
> </data-map>
> 
> --
> 
> *c/ context.xml*
> 
> <Context antiJARLocking="true" path="/click-sample">
>  <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
>                maxActive="100" maxIdle="30" maxWait="10000"
>                username="myusername" password="mypassword" 
> driverClassName="com.mysql.jdbc.Driver"
>                url="jdbc:mysql://localhost:3306/test"/>
> </Context>
> 
> *The question is:*
> *Could you show me how do I lookup the datasource (in DatabaseInitListener 
> class) and how do I query
> all News (in NewsService.java) ?*
> 
> Thank you for reading (and sorry if my English is bad) :D

Reply via email to