为什么使用Hibernate

为什么使用Hibernate?

这个问题就像我们为什么使用MVC,设计模式一样,我们使用它们的目的就是为了方便,而它们之所以会存在就是因为它们有自己的特点。

今天就来通过认识Hibernate,从而知道我们为什么要使用它。

一、Hibernate的由来:

我们平常做开发的时候经常需要使用到JDBC连接来读写数据库,最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。

这时出现了Hibernate框架,它很好的解决了这一繁琐的问题。

二、Hibernate的概念:

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

换句话说,Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

下面我来展示一下不使用Hibernate和使用Hibernate的D层的代码:

使用Hibernate前:

public void addItem(Connection conn, Item item) {       String sql = "insert into t_items (item_no, item_name, spec, pattern, category, unit) " +                   "values (?, ?, ?, ?, ?, ?)";       PreparedStatement pstmt = null;       try {           //Dao的设计通常是单纯的,不应该放入太多的逻辑            //因为Dao是我们程序的最底层,所以越通用越好            pstmt = conn.prepareStatement(sql);           pstmt.setString(1, item.getItemNo());           pstmt.setString(2, item.getItemName());           pstmt.setString(3, item.getSpec());           pstmt.setString(4, item.getPattern());           pstmt.setString(5, item.getItemCategory().getId());           pstmt.setString(6, item.getItemUnit().getId());           pstmt.executeUpdate();       } catch (SQLException e) {           throw new AppException("添加物料失败!");       } finally {           DBUtil.close(pstmt);       }   }  

使用Hibernate后:

public void addItem(Session session, Item item) {       session.save(item);   }  

从对比中我们可以看到使用Hibernate后代码清爽了很多。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/539b718bcbbc8c799a5ca1628a6400ed.html