FireStorm/DAO Features Matrix

Database Support

Feature Community Standard Architect
Import relational database schemas via JDBC. Any database with a standard-compliant JDBC driver can be supported. Yes Yes Yes
Import relational database schemas from any ANSI-SQL compliant Database Definition Language (DDL) script. Yes Yes Yes
In addition to exposing tables, views, and custom SQL statements as Data Access Objects, FireStorm/DAO exposes Stored Procedures as DAOs. Available for Sybase, Oracle, and SQL Server. Yes Yes Yes
Round trip engineering: A synchronization wizard makes it easy to import new versions of a database (JDBC or SQL) schema without losing modifications made to a FireStorm/DAO project file. Database synchronization works by automatically importing new tables, views, and columns, without losing modifications made to existing objects. Yes Yes Yes
Automatically recognizes MySQL auto-increment columns on import. Yes Yes Yes
Support for DB2 and Oracle sequence types for auto-generated primary-keys. Yes Yes Yes
Support for all standard JDBC data types including BLOB and CLOB. Yes Yes Yes
Dynamic Update Method: Firestorm/DAO users can choose to generate static update methods that update every column every time, or a new dynamic update method that only updates columns that have been modified. Yes Yes Yes
By default, BLOB types are automatically mapped to byte arrays and CLOB types are mapped to Strings. The implementation code for reading BLOB and CLOB columns is contained in a generated base class that can be customised if required. Yes Yes Yes
Exposes all DAO types as Stateless Session Beans making it easier to integrate databases with SOA environments. If the JDBC DAO implementation strategy is chosen then the dynamic finder methods are also exposed for maximum flexibility. Yes Yes Yes
Partial schema support: specify a list of tables and views to import from the database where DAOs are only required for a subset of the database. FireStorm/DAO Studio provides a graphical user interface for selecting the database elements for which a DAO tier is generated. The developer specifies a list of tables and views to import from the database. Yes Yes Yes
Custom Data Access Objects with dynamic SQL. Effectively this means that the same DTO and DAO mapping can now be used with multiple SQL statements. A typical use-case for using Dynamic SQL statements with a Custom DAO is where a multi-table SELECT is implemented as a Custom DAO but there is a need for multiple "finder" methods. Yes Yes Yes
Interactive SQL Tool allows queries to be tested directly from FireStorm/DAO Yes Yes Yes
Database Schema Migration Too makes it possible to change the target database in a FireStorm/DAO™ project file and any SQL data types not supported by the new target database is automatically change to supported types, making it easy to migrate a schema to a new database platform. Yes Yes Yes

DAO Code Generation

Feature Community Standard Architect
Generate Data Access Object (DAO) interfaces, Data Transfer Object (DTO) classes, and Data Access Object (DAO) exception classes for each DAO defined in the project file. Yes Yes Yes
Option to generate logging calls based on System.out.println() or log4j. Yes Yes Yes
Generates complete Ant build script to compile and package the generated code. Yes Yes Yes

JDBC DAO Code Generation

Feature Community Standard Architect
Generate Data Access Object (DAO) implementation that uses plain JDBC calls and SQL statements. Yes Yes Yes
Support for custom SQL statements, including joins, bulk updates and deletes when generating DAO implementation based on JDBC. Yes Yes Yes
Generates JDBC DAO code that is concise and is closer to human-authored code. Variable names are only prefixed with underscores if there is the possibility of a name clash with method parameters, making the code more readable. Generated finder methods contain a single line of code that delegates to a dynamic finder method rather than containing dozens of lines of repetitive code. Yes Yes Yes

Web Application Generation

Feature Community Standard Architect
Generate Web applications for deployment onto standalone web containers (for example, Tomcat 4.x) or to full J2EE platforms. The generated Web application contains JSP pages, Struts Actions, and a DOA tier based on JDBC DAO or EJB CMP DAO or Spring DAO or Hibernate DAO. Yes Yes Yes
Generate a complete JSP Struts Web application for interacting with the generated DAO tier. The generated application is based on the Apache Struts framework and contains full functionality for inserting, updating, deleting, and searching records using the DAO tier. For each table, view and custom DAO, the following artifacts are generated:
- Struts Actions for insert, update, and delete operations
- Struts Actions for each defined finder method
- ActionForm bean to represent DTO
- Relevant entries in struts-config.xml and tiles-defs.xml
- JSP pages for viewing and editing each DAO JSP pages for displaying input form and results page for each finder method
Yes Yes Yes
Generate plain JSP Web application (not using the Struts framework). Yes Yes Yes

Custom DAO Code Generation

Feature Community Standard Architect
Write custom code generators in Java with full access to the FireStorm/DAO code generation API and project meta-data. No proprietary scripting or template language to learn. The code generation templates are Java code. No No Yes
Full access to the source code for the JSP, Struts JSP, JDBC DAO, Hibernate DAO and EJB CMP DAO code generation modules allowing them to be completely customized. No No Yes
Preview source code for new features in upcoming product releases. No No Yes
Source code samples for customization and optimization of code generation templates. No No Yes