diff options
Diffstat (limited to 'src/site/xdoc')
-rw-r--r-- | src/site/xdoc/cookbook.xml | 61 |
1 files changed, 54 insertions, 7 deletions
diff --git a/src/site/xdoc/cookbook.xml b/src/site/xdoc/cookbook.xml index ec294d3..84ebe94 100644 --- a/src/site/xdoc/cookbook.xml +++ b/src/site/xdoc/cookbook.xml @@ -28,7 +28,7 @@ example. </p> <macro name="toc"> - <param name="section" value="2"/> + <param name="section" value="0"/> <param name="fromDepth" value="0"/> <param name="toDepth" value="4"/> </macro> @@ -178,6 +178,7 @@ </p> </subsection> </section> + <section name="Starting from Scratch"> <subsection name="Creating a new Database"> <p> @@ -186,7 +187,7 @@ support everything you may need when creating a new database, it does support a wide range of functionality, and adds more all the time. (If you started using Jackcess a while ago, you should - definitely keep tabs on the release notes, as your knowledge of what + definitely keep tabs on the <a href="changes-report.html">release notes</a>, as your knowledge of what is possible may be out of date). </p> <p> @@ -201,20 +202,66 @@ Some notable gaps: </p> <ul> - <li>Cannot currently create (index backed) foreign-key + <li>Cannot currently create tables with (index backed) foreign-key constraints</li> - <li>Cannot currently create "complex" columns (attachment, - multi-value, versioned memo)</li> + <li>Cannot currently create tables with "complex" columns + (attachment, multi-value, versioned memo)</li> </ul> <p> - As long as your needs fall into the + As long as your needs fall into the aforementioned constraints (or + if you can fake it), then let's get started! + </p> + <p> + The first thing we need to choose is the desired <a href="apidocs/com/healthmarketscience/jackcess/Database.FileFormat.html">FileFormat</a> + of the new Database. Armed with that information, we can start + putting the pieces together using the appropriate builder classes. + Notice that the result of creating the new Database is an open + Database instance. </p> +<source> + File file = new File("test.mdb"); + Database db = new DatabaseBuilder(file) + .setFileFormat(Database.FileFormat.V2000) + .open(); +</source> </subsection> <subsection name="Creating a Table"> <p> - + An empty Database isn't very useful, of course, so we probably want + to add a Table or two. The following code will create the table + that we have used in the above examples. Notice that, like Database + creation, the result of the Table creation is an open Table + instance. </p> +<source> + Table table = new TableBuilder("Test") + .addColumn(new ColumnBuilder("ID", DataType.LONG) + .setAutoNumber(true)) + .addColumn(new ColumnBuilder("Name", DataType.TEXT)) + .addColumn(new ColumnBuilder("Salary", DataType.MONEY)) + .addColumn(new ColumnBuilder("StartDate", DataType.SHORT_DATE_TIME)) + .toTable(db); +</source> </subsection> + <p> + That is a very simple Table. In the real world, we often need Indexes + to speed up lookups and enforce uniqueness constraints. Adding the + following to the previous example will make the "ID" column a primary + key and enable speedier lookups on the "Name" column. + </p> +<source> + // new TableBuilder(... + .addIndex(new IndexBuilder(IndexBuilder.PRIMARY_KEY_NAME) + .addColumns("ID").setPrimaryKey()) + .addIndex(new IndexBuilder("NameIndex") + .addColumns("Name")) + // .toTable(... +</source> + <p> + Don't forget to close the Database when you are finished building it + and now you have a fresh, new Database on which to test some more + recipes. + </p> </section> </body> |