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:
- Standard Java DAO using JDBC DAO
- Hibernate DAO
- Spring DAO JDBC
- Ruby (using the mysql-ruby library)
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?
- Cut Development Costs with Measurable Productivity Gains
- Lower Ongoing Maintenance Costs
- Better Software Design
- Business Rather Than Technical Focus
- Consistent Design Practices
- Fewer Errors Reduces Testing and Debugging Costs
Read more here.
What are the technical benefits of FireStorm/DAO?
- No Database Changes Required
- Standards-Based Development
- High Performance Code
- Portable code
- Shorter Development Cycles
- Reduced Testing
- Professional Product Packaging
- User Friendly Interface
- No Proprietary Runtime Libraries Required
- Compatible with Existing Development Processes
- Easy Installation and Configuration
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:
- Optimize performance based on specific project requirements
- Integrate more closely with existing development procedures and build environments, such as internal coding standards
- Add environment-specific extra custom features such as caching, security, auditing, and clustering
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
- Import database schemas from a JDBC connection
- Import database schemas from SQL/DDL scripts
- Reverse-engineer stored procedures
- Round-trip engineering (import modifications made to a schema)
- Create new schemas using a simple user interface
- Imported schemas can be modified using a simple user interface
- Generates Data Access Object (DAO) interfaces
- Generates Data Access Object (DAO) exception classes
- Generates Data Transfer Object (DTO) classes
- Generates Data Access Object (DAO) classes for JDBC
- Generates Data Access Object (DAO) classes for Java Persistence API (JPA)
- Generates Data Access Object (DAO) classes for Spring JDBC
- Generates Session Bean facade for each DAO interface
- Generates Web pages based on Apache Struts framework
- Generates Web pages based on plain Java Server Pages
- Dynamic Update Method
- Interactive SQL Tool
- Database Schema Migration
- Optimized JDBC Code
- Import Generation for Partial Schema
- Generates CMP deployment descriptors
- Generates J2EE deployment descriptors
- Generates ANT build scripts
Supported Databases
All editions of FireStorm/DAO support the following database platforms:
- Oracle 8i/9i
- Sybase
- IBM DB2
- MySQL
- IBM Cloudscape
- Microsoft SQL Server
- Informix
- Apache Derby
- Microsoft Access
- InnoDB
- PostgreSQL
- Any JDBC-compliant database
Supported J2EE Platforms
FireStorm/DAO Enterprise Edition generates code for the following J2EE platforms:
- BEA WebLogic 6.1
- BEA WebLogic 7
- BEA WebLogic 8.1
- IBM WebSphere 4
- IBM WebSphere 5
- JBoss 3.2
Supported Operating Systems
All editions of FireStorm/DAO run on the following operating systems:
- Microsoft Windows 2000, Windows NT4, Windows XP, Windows Vista
- UNIX
- Linux
- Mac OS X
FireStorm/DAO Architect Edition - Demonstration Video
A short demonstration video introducing FireStorm/DAO Architect Edition is available in Windows Media format to view here.
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:
- The DAO architect has control over the code generated by all other developers using FireStorm/DAO Enterprise Edition, so they can benefit from the DAO architect's specialist expertise.
- The DAO architect can ensure that programmers are strictly following coding standards/best practices. This benefit is important in large organizations with multiple development teams, or where there are multiple development projects, because it ensures a consistent approach to the common task of database access.
- Multiple custom DAOs can be developed as required for different types of projects (for example, optimization for different databases)
- Additional features can be added to the DAO templates by the DAO architect
- FireStorm/DAO can be more closely integrated with existing development procedures (for example, special build system requirements, internal coding standards)
- The Architect Edition can be used to address certain skill shortages – where the DAO expert can control the activities of less skilled developers. It is particularly useful for software developers with database skills that may not have sufficient Java experience to write Java persistence code from scratch.
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
staticJClassgenerate(
TableDaodao,
CommonOptionsconfig
)
{
JClassc=
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");
PrimaryKeypk=
dao.getPrimaryKey();
if
(pk!=null)
{
TableDaoColumncol[]=dao.getPrimaryKeyColumnList();
for
(inti=
0;i
col.length;
i++)
{
JAttributeattr=
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
FireStorm/DAO OEM Edition

FireStorm/DAO OEM Edition is specifically aimed at software product vendors. The functionality isthe 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:
- Software, full product or specified components
- Product documentation
- Branding
- Technical support
- Services from CodeFutures Customer Engineering Group
- Training
- Sales support
- Marketing support
- Product development support
- Intellectual property rights
The benefits of embedding FireStorm/DAO include:
- Lower cost than in-house development
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-reducedcost compared with the cost of starting development. A considerable amount of effort is currently required to write the core code generation utilities.
- Short time-to-market
FireStorm/DAO is ready for immediate use. The products have been availablefor several releases and successfully deployed, both directly by customers and as part of OEM Edition ISV agreements.
- Core competence
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.


