Table of Contents
In this tutorial we will explain how to use this tool with some examples.
Lets say that you want to generate just one table with the following diagram:
You have to create the following XML file:
Example 2.1. Hello World XML file.
<?xml version="1.0" encoding="UTF-8"?> <project name="HelloProject"> <metadata create="true"> <table name="HelloWorld"> <generator row-count="1000" /> <column name="id" data-type="integer"> <generator> <integer min="0" /> </generator> </column> <column name="message" data-type="string" size="15"> <generator> <script language="javascript"> value = "Hello World!"; </script> </generator> </column> <column name="some_integer" ds-type="INT"> <generator> <integer min="-24" max="45" /> </generator> </column> <column name="some_real" data-type="real"> <generator> <real min="-1" max="8" precision="3" /> </generator> </column> <column name="some_date" data-type="DATE"> <generator> <date min="01/01/01" max="01/01/10" /> </generator> </column> <column name="some_time" data-type="TiMe"> <generator> <time min="1:20 AM" max="6:30 PM" /> </generator> </column> <column name="some_phone" ds-type="varchar" size="20"> <generator> <phone template="+56-32-XXXXXXX" /> </generator> </column> <column name="some_string" data-type="STRING" size="10"> <generator> <printf format="%d-%s"> <integer min="1" max="4" /> <string length="4" /> </printf> </generator> </column> <primary-key> <column-ref column="id" /> </primary-key> </table> </metadata> <output> <csv header="true" prefix="table" suffix=".csv" /> </output> </project>
Save the file as hello.xml
. To generate
the data run the following command:
bash$
java -jar elgenerador.jarhello.xml
You will see how the program generates the data and creates in the working directory a file named tableHelloWorld.csv that contains the generated comma separated values.
The XML file always must start with a
project
tag. Optionally you can specify a name for this project.
You can specify a random-seed
attribute,
that will be user as a numeric seed for the generators,
so if you supply the same seed, the generated data
will be identical.
Then you can specify the
metadata
that defines the generated tables with its columns
and data types. If the create
attribute
is true
the tables will be re-created
in the output data source.
Define one or several
table
tags. They must have at least a name
attribute defined, and is preferrable to define the
generator
tag and set as attribute the row-count
that will define the number of rows to generate. If
this tag is not included, the program will not
generate the table.
Define one or several
column
tags.
They must have at least a name
and a data-type
or ds-type
tags defined. The tag data-type
stands
for the application generic data type, there are
several generic data types available. The tag
ds-type
stands for data-source data type,
this type can be any type that the underliying
RDBMS supports. Data types are case insensitive.
If you select any string or byte string data type
you must supply the size, if it is not supplied,
the application will take 32 characters or bytes
of length.
Define a
generator
tag. That will contain the selected column
generator. If a generator is not supplied, the
program will pick one compatible with the data
type with a default configuration.
Define the concrete generator to use, the program will not check for compatibility, for now you can put a string generator for a integer column, but it will raise an error at the data insertion moment.
Define, if it is necessary, one or more contraints
like, primary keys
or foreign keys.
In this example, id
is the primary key
column, but the program supports multiple columns
as primary keys.
Define an
output
tag that will specify the data source used for
data output.
In this case, a
csv
data source was chosen, with a prefix for its tables
and a suffix to be used. If the table is called
HelloWorld
, with this configuration, the
CSV file will be tableHelloWorld.csv
.