*@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