Advantages and Disadvantages of using Hibernate like ORM libraries

  •        0
  

Traditionally Programmers used ODBC, JDBC, ADO etc to access database. Developers need to write SQL queries, process the result set and convert the data in the form of objects (Data model). I think most programmers would typically write a function to convert the object to query and result set to object. To overcome these difficulties, ORM provides a mechanism to directly use objects and interact with the database.
There are lots of advantages of using ORM

  1. Database independent. This is the biggest advantage. No need to write code specific to database. I have worked in various products where they maintain separate module / code base for every database and there is lot of effort invested to support multiple database. ORM is a boon.
  2. There is no need to write SQL queries. Session.saveOrUpdate(entityObject) takes care of insertion in case of Hibernate.
  3. Takes care of dependencies between tables and does join queries.
  4. Few ORM libraries has support of caching. Hibernate uses ehcache and provides caching support. This reduces the load from the database and increases the response time.
  5. Maintains transactions commit and rollback.
  6. Maintains database connection pool.
  7. Concurrency support.
  8. Easy maintenance and increases productivity.
Few disadvantages:
  1. ORM makes life easier but developers will eventually skip learning SQL and database internals.
  2. There will be some overhead involved using ORM. If the database is accessed directly then developers are having some control and they could fine tune its performance.
  3. There is a learning curve involved in understanding ORM library. Java, .NET, PHP has better ORM libraries. .NET has support of LINQ, which is a Framework that encompass language-integrated query.
If your project is using single database and you may need to run some complex queries and fine tune the performance then choose ODBC, JDBC, ADO or similar kind of Data access layers. If not choose ORM as it will make your life easier. But spend some time in understanding the database internals as it will help to take leverage of both ends.
Reference:
Open source ORM libraries
Open source database
Open source connection pool libraries in Java


   

comments powered by Disqus


Related Articles

8 Best Open Source Searchengines built on top of Lucene

  • lucene solr searchengine elasticsearch

Lucene is most powerful and widely used Search engine. Here is the list of 7 search engines which is built on top of Lucene. You could imagine how powerful they are.

Read More


How to learn from open source projects

  • open-source learning methodology

Students ask this question frequently steps or methodology to learn from open source projects. There is no single answer or steps available. I listed the steps which i follow and i hope this will help for few.

Read More


Should web application store images in Database or File system?

  • database image-store filesystem

Web developers most frequent question, Should user images be stored in database or file system? Which is the best way. Both has some pros and cons.

Read More


Best situation to use Column database

  • column database reporting

Column oriented database or datastore as the name sounds it stores the data by column rather than by row. It has some advantages and disadvantages over traditional RDBMS. Developer should know the typical situation to choose column oriented database.

Read More


Why require Searchengine? Why not use database for full text search in Enterprise application.

  • searchengine database

Most of the database has support of full text search, basically indexing and saarching. MySQL, Oracle and many more databases has in-built full text search. Then what is the need to go for external search engine like Lucene, Sphinx, Solr etc. Check out the advantage of using Searchengine.

Read More


Lucene / Solr as NoSQL database

  • lucene solr no-sql nosql document-store

Lucene and Solr are most popular and widely used search engine. It indexes the content and delivers the search result faster. It has all capabilities of NoSQL database. This article describes about its pros and cons.

Read More


Column database vs OLAP

  • business-intelligence olap column-database

OLAP (Online Analytical Processing), Reporting, Data mining related tasks are usually done by Business intelligence products. They do powerful Extraction, Transformation and Loading (ETL) the data and provides various reports. They use relational database as its back end. How could they generate better reports? Will column DB do a better job?

Read More


An introduction to MongoDB

  • mongodb database document-oriented-databse no-sql c++ data-mining

MongoDB is the most exciting SQL-free database currently available in the market. The new kid on the block, called MongoDB is a scalable, high-performance, open source, schema free and document oriented database that focuses on the ideas of NoSQL Approach. Written in C++, it has taken rapid strides since its emergence into the public sphere as a popular way to build your database applications.

Read More


10 sites to get the large data set or data corpus for free

  • search test-data large-data-set data-corpus dataset

You may require GBs of data to do performance or load testing. How your app behaves when there is loads of data. You need to know the capacity of your application. This is the frequently asked question from the sales team "The customer is having 100GB of data and he wants to know whether our product will handle this? If so how much RAM / Disk storage required?". This article has pointers to the large data corpus.

Read More


Solr vs Elastic Search

  • full-text-search search-engine lucene solr elastic-search

Solr and Elastic Search are built on top of Lucene. Both are open source and both have extra features which makes programmer life easy. This article explains the difference and the best situation to choose between them.

Read More