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