JDBCPersistence is an ORM tool that enables users to map objects in their application to relational databases.
The framework's differentiating features are the result of its focus on optimization and programmer efficiency. JDBCPersistence builds on existing knowledge of SQL, JDBC APIs, and IDEs, while avoiding dependencies on specific libraries, tools, or IDEs. This approach strikes a good balance between ease of use and powerful functionality.
For example, the framework allows programmers to quickly prototype value objects by specifying them as Java interfaces and then generating runtime implementations. However, JDBCPersistence also recognizes that data relationships are often determined by complex business rules, so programmers must maintain these relationships in code.
The framework's primary focus is on providing ORM (Object Relational Mapping) services while leaving other concerns, such as data caching, up to the developer to solve in the context of an application. JDBCPersistence does not prescribe a caching solution, as these requirements can vary significantly between online and batch applications. Instead, the developer must decide on an application-specific caching policy and implement it in the appropriate architectural layer.
JDBCPersistence does not add any behavior to the application classes but instead uses bytecode generation techniques to implement the logic for persisting data. This approach allows for further optimization by the JVM and is more efficient than using reflection.
The API of the framework builds on the existing JDBC APIs and includes four classes and three interfaces. As the framework uses standard SQL for querying data, there is no need to learn a specific query language. Additionally, JDBCPersistence's only dependency is ASM, used for bytecode generation, keeping the package's footprint under 200K.
In summary, JDBCPersistence is an excellent ORM option for high volume online banking applications. It strikes a balance between ease of use and powerful functionality, while leaving other concerns such as data caching up to the developer. Its use of standard SQL and reliance on existing APIs make it an accessible option for any project requiring effective ORM.
Version 1.5 Beta 2: N/A