本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。
Hibernate是什么 连接java应用程序和关系型数据库的中间件 对JDBC API封装,负责对象持久化 位于持久化层,封装所有的数据访问细节,使业务逻辑层更关注于业务逻辑。 一种ORM映射工具。
随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis。相信很多朋友以前看过ibatis2.x,对ibatis2.x也比较熟悉,随着技术的发展,我们必须跟得上技术发展的步伐,不能永远停留在原来的技术上而不做进一步学习。由于在我的一个新项目中采用了mybatis,为此我发了几天来学习了mybatis,相对hibernate来说,本人感觉mybatis相对来说更加简单,特别是熟悉sql语句的朋友们,你在采用mybatis时,你会觉得跟传统的jdbc方式来操作数据库没什么差别,只是mybatis帮你做了很多原来你在用jdbc来实现时的很多工作。我们来看看mybatis包含了哪些新特性。
JDO是 Java EE标准中另外一个支持管理持久化数据的规范,JDO规范使用和 JPA非常类似的 API,只是通常是通过 JCA技术集成到应用服务器上。但是 JDO是针对轻量级容器而设计的,不能够支持容器级别的声明式安全、事务特性,也无法对远程方法调用提供支持。EJB 3.0规范由三部分组成:EJB3.0 Simplified API、EJB核心规范(EJB Core Contracts and Requirements)和 JPA(Java Persistence API)。JPA规范部分详细的介绍了 JPA中实体 Bean的定义,并介绍了实体 Bean支持的注释、全新的查询语言、实体管理接口、容器实现规范等内容。 JPA标准制定过程中充分吸收了目前已经出现的所有持久化技术的所有优点,摒弃了它们存在的局限,使 JPA在简单易用、查询能力等方面表现突出。
与SQL查询一样,hql也支持连接查询,如内连接,外连接和交叉连接.支持的链接类型是从ANSI SQL中借鉴来的. 1: inner jion (内连接) 2: left outer join (左外连接) 3: right outer join(右外连接) 4: full join(全连接--不常用) inner jion 可以简写为join. 正常情况下必须要建关联。
最基本的Hibernate3.3.2之JAR包(必要):注意:slf4.jar和slf4j-nop.jar之间的版本需要匹配,如果Hibernate中使用早期的slf4j.jar,可以从slf4j官方网站下载新的JAR包将其置换掉如果要使用Annotation,还需要下面的JAR包:使用javax.persistence下的Annotation可以不依赖Hibernate的JAR包,这样的话可以切换到其他的ORM框架如果要使用log4j,则需要添加相关的JAR包:当然别忘记了在类路径下放log4j的配置文件哦
SQL Map API让开发人员可以轻易地将Java Bean映射成PreparedStatement的输入参数和ResultSet结果集。 开发SQL Map的想法很简单:提供一个简洁的架构,能够用20%的代码实现80%JDBC的功能。
《Hibernate手动配置过程》1.增加JAR支持(以下是必备的Hibernate的jar包支持)将上述jar包拷贝到lib文件夹中。2.写hibernate配置文件hibernate.cfg.xml(一般将此文件放在src根目录下)3.写表对应的实体类(DTO)(例:UserInfo.java)4.写实体类—表的映射文件*.hbm.xml5.将映射文件(*.hbm.xml)注册到hibernate.cfg.xml中
实体和数据库之间存在某种映射关系,hibernate根据这种映射关系完成数据的存取。在程序中这种映射关系由映射文件(*.hbm.xml)或者java注解(@)定义。本文以java注解的形式总结映射关系配置。
数据库事务与并发。教学内容数据库事务的概念声明事务边界并发问题设置事务隔离级别使用悲观锁解决并发问题使用乐观锁解决并发问题参考教材:《精通Hibernate:Java对象持久化技术详解》数据库事务的概念事务是指一组相互依赖的操作行为,如银行交易、股票交易或网上购物。事务的成功取决于这些相互依赖的操作行为是否都能执行成功,只要有一个操作行为失败,就意味着整个事务失败。
Hibernate检索对象的方式。教学内容HQL检索方式QBC检索方式本地SQL检索方式参考教材:《精通Hibernate:Java对象持久化技术详解》Hibernate提供的检索对象的方式导航对象图检索方式根据已经加载的对象,导航到其他对象。
Hibernate的检索策略。教学内容立即检索策略延迟检索策略迫切左外连接检索策略每种检索策略的适用范围在程序中显式指定迫切左外连接检索策略参考教材:《精通Hibernate:Java对象持久化技术详解》CUSTOMERS表和ORDERS表中的记录运行Query的list()方法ListcustomerLists=session.createQuery("fromCustomerasc").list();假定采用立即检索策略,运行以上Query的list()方法时,Hibernate将先查询CUSTOMERS表中所有的记录,然后根据每条记录的ID,到ORDERS表中查询有参照关系的记录。
域对象在持久化层的四种状态。教学内容Session的缓存的作用Session清理缓存的时间点对象的临时状态、持久化状态、游离状态和删除状态用Session的update()方法使游离对象转变为持久化对象参考教材:《精通Hibernate:Java对象持久化技术详解》理解Session的缓存当Session的save()方法持久化一个Customer对象时,Customer对象被加入到Session的缓存中,以后即使应用程序中的引用变量不再引用Customer对象,只要Session的缓存还没有被清空,Customer对象仍然处于生命周期中。
第一个Hibernate应用教学目标创建Hibernate的配置文件创建持久化类创建数据库Schema创建对象-关系映射文件映射文件的文档类型定义(DTD)把Customer持久化类映射到CUSTOMERS表通过HibernateAPI操纵数据库用ANT工具管理项目参考教材:《精通Hibernate:Java对象持久化技术详解》在Java应用中使用Hibernate的步骤创建Hibernate的配置文件创建持久化类创建对象-关系映射文件通过Hibernate API编写访问数据库的代码
Java对象持久化技术概述; 创建Hibernate应用; 映射一对多关联关系; 域对象在持久化层的状态; Hibernate检索策略; Hibernate检索方式;; 数据库事务与并发; 映射组成关系;
Hibernate太复杂,iBatis不好用,JDBC代码太垃圾,DBUtils在简单与优美之间取得了完美平衡。DbUtils小巧的Java数据库操作工具,它在JDBC的基础上做了科学的封装,旨在简化JDBC代码混乱与重复。
Nhibernate概括:一个对象关系映射工具,其目标是把.NET对象持久化到关系数据库。简介1、开篇Nhibernate:是一个面向.NET环境的对象/关系映射工具。对象关系映射(O/RMapping)表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。优缺点:Hibernate不仅仅管理.NET类到数据库表的映射,还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和ADO.NET处理数据的时间。NHibernate的目标主要是用于与数据持久化相关的编程任务,使开发人员从原来的SQL语句的编写中解放出来,解放出来的精力可以让开发人员投入到业务逻辑的实现上。
域对象在持久化层的四种状态教学内容Session的缓存的作用Session清理缓存的时间点对象的临时状态、持久化状态、游离状态和删除状态用Session的update()方法使游离对象转变为持久化对象理解Session的缓存当Session的save()方法持久化一个Customer对象时,Customer对象被加入到Session的缓存中,以后即使应用程序中的引用变量不再引用Customer对象,只要Session的缓存还没有被清空,Customer对象仍然处于生命周期中。
教学目标创建Hibernate的配置文件创建持久化类创建数据库Schema创建对象-关系映射文件映射文件的文档类型定义(DTD)把Customer持久化类映射到CUSTOMERS表通过Hibernate API操纵数据库
教学内容HQL检索方式QBC检索方式本地SQL检索方式Hibernate提供的检索对象的方式导航对象图检索方式根据已经加载的对象,导航到其他对象。例如,对于已经加载的Customer对象,调用它的getOrders().iterator()方法就可以导航到所有关联的Order对象,假如在关联级别使用了延迟加载检索策略,那么首次执行此方法时,Hibernate会从数据库中加载关联的Order对象,否则就从缓存中取得Order对象。