What is Persistence Framework?
A persistence framework moves the program data in its most natural form (in memory objects) to and from a permanent data store the database. The persistence framework manages the database and the mapping between the database and the objects. There are many persistence framework (both Open Source and Commercial) in the market. Persistence framework simplifies the development process.
Open Source Persistence Framework in Java
- Hibernate
Hibernate is a powerful, ultra-high performance object/relational persistence and query service for Java. Hibernate lets you develop persistent classes following common Java idiom - including association, inheritance, polymorphism, composition and the Java collections framework. The Hibernate Query Language, designed as a "minimal" object-oriented extension to SQL, provides an elegant bridge between the object and relational worlds. Hibernate also allows you to express queries using native SQL or Java-based Criteria and Example queries. Hibernate is now the most popular object/relational mapping solution for Java.
- OJB
ObJectRelationalBridge (OJB) is an Object/Relational mapping tool that allows transparent persistence for Java Objects against relational databases. OJB has been designed for a large range of applications, from embedded systems to rich client application to multi-tier J2EE based architectures. OJB integrates smoothly into J2EE Application servers. It supports JNDI lookup of datasources. It ships with full JTA and JCA Integration. OJB can be used within JSPs, Servlets and SessionBeans. OJB provides special support for Bean Managed EntityBeans (BMP).
- Torque
Torque is a persistence layer. Torque includes a generator to generate all the database resources required by your application and includes a runtime environment to run the generated classes. Torque was developed as part of the Turbine Framework. It is now decoupled and can be used by itself. Starting with version 2.2 Turbine uses the decoupled Torque. Torque's runtime environment includes everything you need to use the generated OM/Peer classes. It includes a jdbc connection pool.
- Cayenne: Professional Object Relational Mapping.
Cayenne is a powerful, full-featured Java Object Relational Mapping framework. It is open source and completely free. One of the main Cayenne distinctions is that it comes with cross-platform modeling GUI tools. This places Cayenne in the league of its own, making it a very attractive choice over both closed source commerical products and traditional "edit your own XML" open source solutions.
- TJDO
TriActive JDO (TJDO) is an open source implementation of Sun's JDO specification (JSR 12), designed to support transparent persistence using any JDBC-compliant database. TJDO has been deployed and running successfully in many commercial installations since 2001.
- Jaxor
Jaxor is a code-generating OR mapping tool which takes information defined in XML relating to the relational entities to be mapped and generates classes, interfaces and finder objects which can be used from any Java application (including JFC/Swing, J2EE and command-line tools). The actual code generation is handled by Velocity templates rather than by fixed mechanisms within the tool. This flexability allows easy tailoring and modification to the formatting or even the code that gets generated.
- JDBM
JDBM is a transactional persistence engine for Java. It aims to be for Java what GDBM is for other languages (C/C++, Python, Perl, etc.): a fast, simple persistence engine. You can use it to store a mix of objects and BLOBs, and all updates are done in a transactionally safe manner. JDBM also provides scalable data structures, such as HTree and B+Tree, to support persistence of large object collections.
- pBeans
pBeans is a Object/Relational (O/R) database mapping layer. It is designed to be simple to use and completely automated. The idea is that you save time and effort by simply focusing on writing Java classes, and not worrying about maintenance of matching SQL scripts, XML based schemas, or even generating code. The pBeans framework takes care of persisting JavaBeans with very little assistance from the developer.
- Simple
ORM
SimpleORM is Java Object Relational Mapping open source project (Apache style licence). It provides a simple but effective implementation of object/relational mapping on top of JDBC at low cost and low overhead. Not even an XML file to configure!
Beyond pure Java, SimpleORM is 100% Clean Java. Minimal reflection, no pre processing, and certainly no byte code post processing(!) This simple and elegant framework does not require any clever tricks.
SimpleORM takes great care with database semantics. Locking, quality of information, and caching are all treated properly. SimpleORM allows allows for raw JDBC and non-Java database access and constraints without compromising database integrity. Optimistic locks are used for inter-transaction locking. And nothing gets shipped until its true semantics are properly documented.
- Java Ultra-Lite Persistence (JULP)
Very small persistence framework.
- JPOX Java Persistent Objects
With a versatile and high performance implementation, JPOX is on the cutting edge of the available Java Data Objects (JDO) implementations, offering a free and full compliant JDO implementation released under an open source license. JPOX 1.0 is fully compliant with JDO 1.01, and JPOX 1.1 has many JDO 2.0 preview features. If you are interested in using a JDO implementation and make the most of your time, download JPOX and see what you think. This website provides various documents defining the current status of JPOX with regards functionality and how well it meets the JDO specification. Our future roadmap is available on this site, as well.
- Ibatis SQL Maps
iBATIS SQL Maps provides a very simple and flexible means of moving data between your Java objects and a relational database. Use the full power of real SQL without a single line of JDBC code! The SQL Maps framework will help to significantly reduce the amount of Java code that is normally needed to access a relational database. This framework maps JavaBeans to SQL statements using a very simple XML descriptor. Simplicity is the biggest advantage of SQL Maps over other frameworks and object relational mapping tools. To use SQL Maps you need only be familiar with JavaBeans, XML and SQL. There is very little else to learn. There is no complex scheme required to join tables or execute complex queries. Using SQL Maps you have the full power of real SQL at your fingertips. The SQL Maps framework can map nearly any database to any object model and is very tolerant of legacy designs, or even bad designs. This is all achieved without special database tables, peer objects or code generation.
- Smyle
Smyle provides an innovative, pragmatic approach to data storage - easy to understand, convenient to use, but powerful enough for real world applications. And best of all, Smyle is open source and under the LGPL (that means, it's legal and free to use even in commercial applications).
- Speedo
Speedo is an open source implementation of the JDO (TM) specification.
- XORM
XORM is an extensible object-relational mapping layer for Java applications. It provides interface-based persistence to RDBMSs while allowing developers to focus on the object model, not the physical layer.
- JDBCPersistence
JDBCPersistence is an Object-Relational mapping persistence framework. It differs from its peers in that it generates the bytecode required to map a class to a table. It has been created with the following requirements in mind.- Be fast to load
- Support CLOBs and BLOBs
- Load persistent objects from java.sql.ResultSet
- Have compact API
- Have minimal dependencies on other projects
- Support configuration via API
- Persistent Applications Toolkit (PAT)
PAT stands for "Persistent Applications Toolkit". Like many other software it simplifies developing of persistence layers of business applications. It does it by providing object-oriented environment for persistence of your objects: POJOs And.. it really does it.
PAT provides almost transparent data layer for a business application. It employs state-of-the-art techniques to achieve it. These are OO, AOP (JBossAOP), Java, Prevayler, Ant, JUnit, Log4j, @@annotations and others. It cooperates well with web applications: Struts (and possibly other web frameworks), Tomcat, JBoss AS.
One can think of it like a tool which adds persistence characteristic to Java objects (AOP term: persistence aspect)
Commercial Persistence Framework in Java
- JDO
Genie
JDO Genie is a high performance JDO implementation supporting leading commercial and open source relational databases. JDO Genie supports JBoss, WebLogic, WebSphere, Tomcat, other servlet engines and 2-tier applications.
- LiDO
Unlike O/R mapping tools, LiDO does not just provide access to relational databases, but to all other data sources, that these tools cannot access, such as XML, Mainframe, ODBMS and Flat files.
- JDO
Toolkit
JDO is a fundamental building block for your application. It's the standard way to do object persistence in Java, just like servlets are the standard way to do request/response. Don't let your object oriented model break down into procedural code because you use JDBC Connections, PreparedStatements, and ResultSets. Let the MVCSoft JDO Toolkit transparently persist your objects to the database.
- IntelliBO
Signsoft intelliBO is a persistence middleware application. The product is an implementation of the Java Data Objects standard (JDO), but it goes far beyond that. With Signsoft intelliBO you can handle your data access in a simple and performant way. In other words: intelliBO enables an intelligent data access. Therefore the name intelliBO - intelligent Business Objects. The range of possible applications reaches from simple desktop applications to web applications and complex enterprise applications.
- KodoJDO
Kodo JDO is SolarMetric's robust, high-performing, feature-rich implementation of the Java? Data Objects specification for transparent persistence. Unlike many proprietary object/relational mapping tools, Kodo JDO provides access to relational databases through the JDO standard, enabling Java developers to use existing relational database technology from Java without needing to know SQL or be an expert in relational database design. It can be used with existing database schemas, or can automatically generate its own schema.