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