70 lines
2.9 KiB
Markdown
70 lines
2.9 KiB
Markdown
# Sample Application
|
|
|
|
### API example code
|
|
|
|
Here we provide short but complete and working samples of some of the most
|
|
important parts of the Jones API.
|
|
|
|
- [find.js](find.js) illustrates using [session.find()]
|
|
(../../database-jones/API-documentation/Session)
|
|
to retreive a single record from a table.
|
|
- [insert.js](insert.js) illustrates using session.persist() to store a record.
|
|
- [scan.js](scan.js) illustrates using session.createQuery() to build and execute
|
|
a [Query](../../database-jones/API-documentation/Query) that returns multiple records.
|
|
- [join.js](join.js) illustrates using a
|
|
[Projection](../../database-jones/API-documentation/Projection) to define a
|
|
relationship between tables, and then running session.find() against the
|
|
projection. The equivalent query in SQL would be a join.
|
|
|
|
The scan and join samples use the tables in the tweet demo, described below.
|
|
|
|
|
|
### The Tweet Demo
|
|
|
|
This directory contains a Twitter-like demo application using
|
|
Database Jones.
|
|
|
|
The SQL script create_tweet_tables.sql contains DDL statements for MySQL
|
|
to create the five tables used by the demo application. It can be executed
|
|
using the standard mysql command:
|
|
|
|
mysql -u root < create_tweet_tables.sql
|
|
|
|
The Node.js application [tweet.js](tweet.js) is a rather complete large example
|
|
which can run as either as a command-line tool or as a REST web server. tweet.js
|
|
supplements the simple API examples with sample code for explicit transaction
|
|
handling and batching (e.g. in InsertTweetOperation at line 320). *tweet.js*
|
|
responds to a number of verb-object commands; to see a list of them, simply
|
|
type:
|
|
|
|
node tweet
|
|
|
|
Some demonstration scripts are provided to illustrate *tweet.js*:
|
|
- [demo_populate_data.sh](demo_populate_data.sh) populates the database with some sample data.
|
|
- [demo_cli_get.sh](demo_cli_get.sh) demonstrates querying the sample data from the command shell.
|
|
- [demo_http_get.sh](demo_http_get.sh) demonstrates querying the sample data (and posting a new
|
|
tweet) over the HTTP interface.
|
|
- [demo_http_delete.sh](demo_http_delete.sh) uses the HTTP interface to delete the sample data.
|
|
|
|
Note that in order to run the HTTP demo scripts, you should first start the
|
|
server on port 7800, using the command:
|
|
|
|
node tweet start server 7800
|
|
|
|
tweet.js pays attention to the environment variables `JONES_ADAPTER` (which
|
|
defaults to "ndb") and `JONES_DEPLOYMENT` (which defaults to "test").
|
|
|
|
|
|
### Connecting to a database server in your environment
|
|
|
|
Jones applications connect to a particular database using a
|
|
named **deployment** defined in the file
|
|
[jones_deployments.js](../../jones_deployments.js). The sample
|
|
code uses the "test" deployment. You can customize jones_deployments.js for
|
|
your environment, and you can supply a different deployment as a command-line
|
|
option in tweet.js or by editing the call to
|
|
[ConnectionProperties()](../../database-jones/API-documentation/Jones) in the
|
|
API samples.
|
|
|
|
|