Java Automatic Code Generation Techniques
Code Generation Techniques: Generate Java source code for accessing relational databases
FireStorm/DAO makes Java software developers more productive through code generation techniques that automatically generate Java source code for accessing relational databases.
Code Generation for Reduced complexity
FireStorm/DAO's generated Java provides a one-to-one mapping between Java objects and database tables, which is simpler than using a complex mapping tier or other code generation techniques.
Portable code
The FireStorm/DAO generated Java is fully portable between stand-alone Java and Enterprise Java. The code is also portable between Application Servers(ensuring no lock-in), unlike some other code generation techniques. The generated Java conforms to the widely accepted Data Access Object design pattern. FireStorm/DAO does not require proprietary runtime libraries sometimes required by other code generation techniques.
Service-Oriented
The Java generated by FireStorm/DAO is designed for use in service-oriented architectures. The Data Access Object (DAO) classes are stateless services that can easily be exposed as transactional Session Beans and are also suitable for use as part of a Web Services architecture.
Code Generation Techniques: Performance
FireStorm/DAO is not limited to simple single-table operations but can also leverage the power of the relational database by generating Custom DAO classes that make use of complex SQL statements including table joins. FireStorm/DAO also provides support for exposing stored procedures as Data Access Objects.
Code Generation Techniques: Productivity Gains
Generating Java by definition is always going to be much faster than hand coding. For reference purposes, when using FireStorm/DAO with a reasonable large (over 20 tables) database, there is approximately a twenty-fold productivity increase, which is better than most code generation techniques.
Quality
Generated Java will always have fewer errors than hand written code, due to the elimination of typos, human error, and so on. FireStorm/DAO provides a consistent approach across multiple projects, multiple development teams, and against multiple types of database product. Generating Java ensures that software developers are more likely to be focussed on the business requirements than the more mundane task of coding.
Additional Reading on Code Generation
Code Generation Network
http://www.codegeneration.net/
JavaWorld: Reflection versus Code Generation
http://www.javaworld.com/javaworld/jw-11-2001/jw-1102-codegen.html
Applying Code Generation Techniques to the J2EE Development
http://www.informit.com/articles/article.asp?p=389718
Wikipedia on Code Generation
http://en.wikipedia.org/wiki/Code_generation
Code Generation: The fastest way to write software?
http://www.softwarereality.com/programming/code_generation.jsp
Writing Code is Stupid
http://ianwij.com/weblog/articles/Writing_Code_Is_Stupid.aspx
Code generators help you deliver high-quality code quickly
http://techrepublic.com.com/5102-6329-5035011.html
Are you missing out on code generation?
http://www.devx.com/Java/Article/15511
Code Generation Techniques for Java
http://www.onjava.com/pub/a/onjava/2003/09/03/generation.html
Bug Prevention with Java
http://www.onjava.com/pub/a/onjava/2004/03/31/codeGen.html
Additional Resources
FireStorm/DAO is a database access tool based on the Data Access Object design pattern.
CodeFutures provides a free program to analyze the performance of your MySQL database.
Free MySQL Performance Analysis
Read about how Database Sharding helps many major companies to linearly scale their database applications.
Request Database Sharding White Paper
dbShards economically scales large, high transaction volume databases using Database Sharding.


