Hibernate学习笔记

来源:互联网 发布:工业用电量数据 编辑:程序博客网 时间:2024/06/06 20:19

1、持久层的产生

为了解决对象和关系这两大领域存在的不匹配问题,将业务逻辑层又重新分为:业务逻辑层和持久层。

持久层:数据库的相关操作。

主流的持久层的hibernate和mybatis。对JDBC进行了轻量级的封装,简化了持久层的开发。

hibernate是开源ORM框架(Object/Relation Mapping,对象-关系映射),对JDBC进行了轻量级的封装。

2、hibernate的开发步骤


3、使用hibernate的优缺点

优点:1、程序更加面向对象;2、提高了生产率;3、方便移植(修改配置文件),  跨平台性。4、无侵入性缺点:1、效率比JDBC略差;2、不适合批量操作。
4、为什么使用hibernate?下面内容转自:http://blog.csdn.net/yechen2000/article/details/11498049,此文章对于为何使用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后代码清爽了很多。        三、Hibernate的优点            Hibernate除了上面所说的可以减少代码量还有下面的优点:         1. 提高生产力。因为是基于JDBC的封装,所以代码更加简练了,生产力自然得到了提高。         2. 使开发更加对象化。因为Hibernate是对ORM(对象/关系数据库映射)的一个很好的实现。所以它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,        完全的面向对象思想。         3. 可移植性。Hibernate中不涉及sql语句,sql语句虽然是标准的,但是各个数据库厂商会有不同,使用hibernate标准API,会自动转换成相应的数据库sql语句,关键是hibernate配置文件中方言的配置。4. 支持透明持久化。 Hibernate的API没有侵入性(即所编写的类不需要继承Hibernate的API),对于实体类来说,既可以使用普通的JDBC,也可以使用Hibernate。        四、Hibernate的适用范围 凡事有利必有弊,由于我们Hibernate的特点,所以它存在着一些局限性。1.由于Hibernate是对ORM的实现,所以它只适合于所有的关系型数据库2.由于Hibernate中不涉及sql语句,所以它对大批量数据更新及统计查询功能会有问题3.对于一些Hibernate中的映射标签,因为已经封装好,所以它们的实现也需要一些相应技术的支持。以上对Hibernate进行了初步的介绍,相信大家对Hibernate有了一些认识,也知道了我们使用它就是为了在适当的时候(它的适用范围内)为我们提        供一些方便。
原创粉丝点击