Database Access Tool: FireStorm/DAO

FireStorm/DAO is a code generator that makes software developers more productive by automatically generating DAO code for accessing relational databases. FireStorm/DAO's code generation approach cuts costs through higher developer productivity, better software quality, and lower maintenance costs.

A Database Access Tool for Data Access Objects

FireStorm/DAO is a database access tool that imports existing database schemas (from a SQL script or from a live JDBC connection) and generates a complete data persistence tier based on any of the following persistence technologies:

FireStorm/DAO generates code that is compliant with the Data Access Object design pattern (the DAO design pattern is a core J2EE design pattern). The database access tool generates Java DAO code and configuration files that developers would otherwise have to write by hand. In addition to being a database access tool, FireStorm/DAO can also generate presentation tier code based on JSPs and Struts.

A Database Access Tool to Reduce Complexity

FireStorm/DAO adopts a pragmatic approach of generating Java DAO code for data persistence that is a direct mapping of a particular relational database schema. It is also possible to define complex multi-table queries and to leverage existing database logic contained within stored procedures.

FireStorm/DAO can generate DAO code for standalone Java as well as for leading J2EE application servers, such as JBoss, BEA WebLogic, IBM WebSphere, and Apache Tomcat. The generated DAO code is well-written, consistent, and contains technical documentation. Most importantly, the generated code is production quality and has been deployed in thousands of applications worldwide.

Free Evaluation: Download FireStorm/DAO

FireStorm/DAO Product Editions

FireStorm/DAO Architect Edition

FireStorm/DAO Architect Edition generates a JDBC DAO tier and a complete Web application based on Struts and Tiles, generates DAOs for partial schemas from user-selected tables and rows, and provides performance tuning options. FireStorm/DAO generates Hibernate DAO and Spring DAO persistence tiers. FireStorm/DAO allows new custom code generation modules to be developed and integrated with the FireStorm/DAO Studio environment. The code generation modules are written in standard Java so there is no need to learn a proprietary code generation template language as with other solutions.

FireStorm/DAO OEM Edition

FireStorm/DAO OEM Edition is specifically aimed at software product vendors. The functionality is the same as FireStorm/DAO Architect Edition, with additional, normally unavailable, internal technical documentation as possibly access to source code. CodeFutures' commitment to flexible licensing arrangement and product packages ensures that ISVs of any size can be accommodated. FireStorm/DAO is highly portable and easy to integrate with third-party software.


A Database Access Tool to Reduce Development Costs

Read about the benefits of a database access tool:

How does FireStorm/DAO cut costs?

Read more here.

What are the technical benefits of FireStorm/DAO?

Read more here.

Where is FireStorm/DAO used?

There are many scenarios where FireStorm/DAO is an ideal database access tool, including where there frequent changes to the database schema and therefore the DAO code, when the database schema is very large and writing the data access code would take considerable time, and so on.

Read more here.

FireStorm/DAO Architect Edition

FireStorm/DAO Architect Edition is powerful and flexible database access tool that offers the choice of generating a DAO tier using either JDBC DAO, EJB CMP DAO, Hibernate DAO, and Spring DAO. In addition, the Architect Edition can also generate J2EE Web applications for Tomcat, JBoss, BEA WebLogic, and IBM WebSphere.

Download FireStorm/DAO Architect Edition Evaluation

FireStorm/DAO Architect Edition is priced at $995 per developer for Annual Developer Subscriptions, which can be purchased from the CodeFutures online store.

CodeFutures provides FireStorm/DAO users with the source code for the entire product, including the source code for the code generation templates (JDBC DAO, Hibernate DAO, and Spring DAO).

The code generation templates are written in standard Java so there is no need to learn a proprietary code generation template language as with other solutions. There is no limit on the number of custom DAO design templates can be developed – possibly using different DAO templates for different parts of the same application. Additional non-DAO custom code generation templates can also be developed and used with FireStorm/DAO.

FireStorm/DAO Architect Edition includes the source code for the entire product, including the source code for the each of the DAOs (JDBC DAO, Hibernate DAO, and Spring DAO). This allows FireStorm/DAO to be customized:

FireStorm/DAO Architect Edition also allows new custom code generation templates to be developed and integrated with the FireStorm/DAO Studio environment.

FireStorm/DAO Architect Edition Features

Supported Databases

All editions of FireStorm/DAO support the following database platforms:

Supported J2EE Platforms

FireStorm/DAO Enterprise Edition generates code for the following J2EE platforms:

Supported Operating Systems

All editions of FireStorm/DAO run on the following operating systems:

FireStorm/DAO Architect Edition - Demonstration Video

A short demonstration video introducing FireStorm/DAO Architect Edition is available in Windows Media format to view here.

Java Code Generator

Team Development using the Architect Edition

The maximum benefits of FireStorm/DAO are usually derived by a software development group using the Architect Edition to customize the DAO design template for its environment.

An experienced software developer within a software development team customizes the DAO template. Then any other programmers who want to develop a data persistence tier use the Enterprise Edition and the custom DAO template provided by the DAO architect.

The DAO templates in FireStorm/DAO Architect Edition can be customized to a project’s exact requirements: optimize performance, integrate more closely with existing build environments, and add environment-specific extra custom features such as caching, security, auditing, and clustering.

The benefits of using FireStorm/DAO Architect Edition with development teams include:

Custom Code Generation with FireStorm/DAO Architect Edition

FireStorm/DAO™ Architect Edition allows custom code generation modules to be developed and integrated into the FireStorm/DAO product.

The FireStorm/DAO™ SDK provides two interfaces that must be implemented by user-defined code generation providers. These are the Provider and ProviderOptions interfaces.

Once the user-defined provider class has been developed it can be integrated with FireStorm/DAO™ by simply adding the class name to the firestorm-conf.xml file as in the following example:

<codegen-providers>
  <provider>com.mycompany.codegen.MyProvider</provider>
</codegen-providers>

This code generation provider will now be available within the "Generate" menu in the FireStorm/DAO™ user interface and will also be available to the Ant code generation task.

The following syntax can be used to invoke a user-defined code generation provider using Ant:

<codegen
  home="${firestorm.home}"
  src="${firestorm.home}/projects/myproject.xml"
  provider="myprovider"
  output="generated-code"
/>

Example of Code Generation Template

/*
* Copyright 2008 CodeFutures Corporation. All rights reserved.
*
* This is vendor code. Use is subject to license terms.
*
* Author: Andy Grove
* Date: 21-April-2008
* Time: 08:57:11
*
* Visit / for more information.
*/

package com.codefutures.firestorm.codegen.dao;

import com.codefutures.jingo.source.dom.JClass;
import com.codefutures.jingo.source.dom.JAttribute;
import com.codefutures.jingo.source.factory.SourceFactory;
import com.codefutures.firestorm.project.dom.TableDao;
import com.codefutures.firestorm.project.dom.TableDaoColumn;
import com.codefutures.firestorm.project.dom.PrimaryKey;
import com.codefutures.firestorm.api.CommonOptions;

public class GenTablePk
{
    public static JClass generate(
    TableDao dao,
    CommonOptions config
    )
    {
        JClass c = SourceFactory.createClass(
        config.getDtoPackageName(),
        dao.getJavaName()
        + DaoConst.PK_SUFFIX
        );

        c.setJavaDoc(
            "This class represents the primary key of the "
            + dao.getSqlName()
            + " table."
        );

        c.addImport( "java.io.Serializable" );
        c.addImplements( "Serializable");

        PrimaryKey pk = dao.getPrimaryKey();

        if (pk != null)
        {
            TableDaoColumn col[] = dao.getPrimaryKeyColumnList();
            for (int i = 0; i col.length; i++)
            {
                JAttribute attr = c.createAttribute(
                col[i].getJavaType(),
                col[i].getJavaName()
                );

                c.createAccessorMethods( attr );
            }

            c.createConstructor( c.getAttributeList() );
        }

        DaoCodeGenHelper.createToStringMethod(
            c,
            dao.getPrimaryKeyColumnList()
        );

        return c;
    }

}

FireStorm/DAO Architect Edition Customer Testimonials

“FireStorm/DAO Architect Edition gives us full control and ownership over the code that is much preferred over other proprietary products. In our experience, most other DB mapping tools and products provide great productivity over the short term, but over the long term, the inability to control the generated JDBC introduces bugs that are very difficult to fix and maintain. Unnecessary workarounds are then used which contaminate our system's architecture. FireStorm/DAO will definitely stay part of our tool set within the foreseeable future!”
Kobus Steenekamp, Senior Java Developer, Discovery Health

“FireStorm/DAO is a great tool not only for rapidly prototyping, but also for doing production quality code. During code reviews and load testing, we have found that the code generated by FireStorm/DAO performs exceptionally well.
We have eliminated the concern of connections remaining open and each developer implementing persistence layers differently.”
Robert Peck, Lead Architect, Ahold USA

“FireStorm/DAO Architect Edition allows us complete control over the generated code mitigating any risks of changes in our application or the product. We were able to build upon the generated persistence layer and generate much of our client and business layer code. In some cases, we were able to generate up to 75% of the code leaving only business logic to program.
We like to joke that at the end of our 18-month project, we will have figured out how to generate the entire application. We would like to thank the FireStorm/DAO team for their outstanding support throughout our project.”
Matt Pearce, Technology Consultant, Ajilon Consulting

Download FireStorm/DAO

FireStorm/DAO OEM Edition

FireStorm/DAO OEM Edition is specifically aimed at software product vendors. The functionality is the same as FireStorm/DAO Architect Edition, with additional, normally unavailable, internal technical documentation as possibly access to source code. CodeFutures' commitment to flexible licensing arrangement and product packages ensures that ISVs of any size can be accommodated. FireStorm/DAO is highly portable and easy to integrate with third-party software.

The product packaging options available for negotiation are:

The benefits of embedding FireStorm/DAO include:

The technology investment in providing DAO has already been made by CodeFutures. Therefore, it is possible to offer this technology to other ISVs at a much-reduced cost compared with the cost of starting development. A considerable amount of effort is currently required to write the core code generation utilities.

FireStorm/DAO is ready for immediate use. The products have been available for several releases and successfully deployed, both directly by customers and as part of OEM Edition ISV agreements.

The core competence in CodeFutures is code automation. Without a specialist development team, it is difficult for other ISVs to replicate the features and functionality provided in CodeFutures™ products.

Further information on the FireStorm/DAO OEM Edition can be obtained by contacting sales@codefutures.com.

Download FireStorm/DAO