Template::Plugin::JavaSQL - Help generate Java from database schemas.


Template-Plugin-Java documentation  | view source Contained in the Template-Plugin-Java distribution.

Index


NAME

Top

Template::Plugin::JavaSQL - Help generate Java from database schemas.

SYNOPSES

Top

Within an XML file processed by the Java plugin:

	<sql:
		query="select foo as f, bar as b from some_table"
	>

	or

	<sql:
		table="some_table"
	>

Via a template such as:

	[% USE Java %]
	[% Use JavaSQL %]
	...
	String query =
	"select [% JavaSQL.columnNames.join(", ") %] from [% JavaSQL.tables.join(", ") %]";
	[% IF JavaSQL.where %]
	query += " where [% JavaSQL.where %] ";
	[% ELSE %]
	query += " where 0=0 ";
	[% END %]
	[% FOREACH JavaSQL.columns %]
	if (${varName}Set) { query += " and $name = ?"; }
	[% END %]
	[% IF JavaSQL.order %]
	query += "order by [% JavaSQL.order %]";
	[% END %]
	stmt = myConnection.prepareStatement(query);

Just use the DBClass.template from the distribution for fully functional database classes.

DESCRIPTION

Top

In addition to methods that refer to parts of a SQL query, any columns resultant from the query or table will be added as java variables to the variables hash, with close-as-possible mapped types.

METHODS

Top

new

Constructor. If given one parameter of type Template::Context, will use that as a context. Then process the contents of "sql:" within the stash. This is what typically happens inside a template when a [% USE JavaSQL %] directive is encountered.

context

Returns Template::Context this instance has, if any.

query

The complete query, either supplied at instantiation or inferred from other arguments.

where

The "where" portion of the SQL query, excluding the word "where" itself.

tables

A list of tables used by the query.

tableCount

Number of tables used by query.

updatable

Whether the query used can be used to update the table.

order

An ORDER BY clause, if one was used.

columnNames

A list of column names used in the query.

isColumn

Check whether a variable name is a column.

varToColumn

Gives the column name mapping of the Java variable name.

columnToVar

Gives the Java variable name mapping of the column name.

columnCount

Number of columns returned from query.

columns

Intended to be used as [% FOREACH JavaSQL.columns %] ... See SYNOPSYS.

parseQuery

Used internally to parse a SQL query and set the appropriate state variables.

ENVIRONMENT

Top

DBI_DSN

DBI Data Source Name, for example, the data source for MySQL and database name "test" it would be: dbi:mysql:database=test

DBI_USER

User name to connect to the database as.

DBI_PASS

Password for database, can be blank for no password.

AUTHOR

Top

Rafael Kitover (caelum@debian.org) The concept and related templates are based on Andrew Lanthier's dbgen framework (an unreleased development utility).

COPYRIGHT

Top

BUGS

Top

Probably many.

TODO

Top

A very great deal.

SEE ALSO

Top

perl(1), Template(3), Template::Plugin::Java::Utils(3), Template::Plugin::Java::Constants(3),


Template-Plugin-Java documentation  | view source Contained in the Template-Plugin-Java distribution.