Could anyone explain the difference between these two technologies: BC4J and Hibernate. Which one is better and I need to choose the most apporpriate technology.
I've never used BC4J, but as far as I know is a fairly complete business object framework from Oracle that addresses all applications layers: Web UI, Data Transfer, Persistence (EJB or otherwise). It is, however, intimately tied to Oracle's JDeveloper environment, so you would need to use JDeveloper as your IDE if you wanted to use BC4J.
Hibernate is "just" an Object-to-Relational Mapping tool. In particular, the only application layer it address is Persistence (saving data into the database). For a complete framework, you would need Hibernate + Other Stuff, such as Hibernate + Struts or Hibernate + WebWorks. On the other hand, Hibernate is Open Source and not tied to any particular development environment or vendor.
If you are using the Oracle environment and development tools, BC4J might be the way to go. Otherwise, I would go with Hibernate.
BC4J is Oracle's off-the-shelf J2EE framework called Business Components for Java.
Hibernate is like any other Object-Relational mapping tool, for e.g Top-link, BSF etc. it helps you map your table definitions to Java objects. so in your application you talk to your database by way of java metod calls on these objects instead of SQL queries. It will basically give u an object view to your database.
i havent worked on BC4J but i think it covers more breadth from a J2EE perspective whereas Hibernate like all other Object-Relational mapping tool/framework is geared and tries to solve one specific problem in the J2EE world i.e providing an object view of your database.
BC4J on the other hand provides one comprehensive framework for your entire J2EE application development.
now the question is which is better over the other. i think since they can perform different functions you can use both. for Object-relaional mapping needs you can use hibernate and for a business framework or any other framework you wanna use, go ahead n try BC4J.