选用Ibatis和Hibernate的区别1

桃扇骨 2022-06-18 00:13 273阅读 0赞

选择hibernate还是选择ibatis,其实都有它的道理,本文分别介绍了两个的特性,并对其自身特点和使用特点做了比较。

AD:

hibernate简介

hibernate是一个开放源代码的对象关系映射框架,它对jdbc进行了非常轻量级的对象封装,使得 java程序员可以随心所欲的使用对象编程思维来操纵数据库。hibernate可以应用在任何使用jdbc的场合,既可以在java的客户端程序使用,也可以在servlet/jsp的web应用中使用,最具革命意义的是,hibernate可以在应用ejb的j2ee架构中取代cmp,完成数据持久化的重任。

一、基本功能

hibernate作为数据持久化的中间件,足以让数据库在业务逻辑层开发中去冬眠。它通过可扩展标记语言(xml)实现了类和数据表之间的映射,使程序员在业务逻辑的开发中面向数据库而改为面向对象开发。使整个项目开发分工更加明确,提高了程序开发的效率。

configuration对象:

configuration 类负责管理hibernate 的配置信息。hibernate 运行时需要

获取一些底层实现的基本信息,其中几个关键属性包括:

  1. 数据库url
  2. 数据库用户
  3. 数据库用户密码
  4. 数据库jdbc驱动类
  5. 数据库dialect,用于对特定数据库提供支持,其中包含了针对特定数据库特性的实现,如hibernate数据类型到特定数据库数据类型的映射等。

以上信息一般情况下由hibernate.cfg.xml或者hibernate.properties文件来配置,实现与不同数据库的连接。

session对象:

session是持久层操作的基础,相当于jdbc中的connection:

实例通过 sessionfactory实例构建:

configuration config = new configuration().configure();

sessionfactory sessionfactory = config.buildsessionfactory();

session session = sessionfactory.opensession();

之后我们就可以调用session所提供的save、find、 flush等方法完成持久层操作。因此session对象也封装了所有对数据库的操作来实现hibernate对数据库的操纵功能,如:

save()方法实现增加和保存;

delete()方法实现数据的删除;

update()方法实现数据更新和修改;

find()方法实现数据的检索;

hibernate会根据不同的操作自动生成相应的sql语句,从而实现了程序员对po对象的操作转化为对数据库关系表的操作。

二、使用步骤

1.编写hibernate配置文件

hibernate配置文件有两种,分别是hibernate.cfg.xml文件和hibernate.properties,推荐使用 hibernate.cfg.xml。

2.po和映射文件

使用middlegen和hibernate-extensions从数据库导出po的映射文件,并在 hibernate.cfg.xml当中声明。

3.编写dao

对每一张关系表编写一个dao,提供一组增、删、改、查方法供业务逻辑对数据库操作使用。

更多的细节请大家参阅hibernate的网站获取详细的信息。并在各自的实践和开发中加深体会。

发表评论

表情:
评论列表 (有 0 条评论,273人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ibatishibernate区别

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

    相关 hibernateibatis区别

    项目也做过几个, 使用IBatis就做一个项目, 基本上都是使用Hibernate, 也只是知道几点关于这两个框架的区别, 今天闲着没事干, 从网上找了几篇文章, 做了一个简单

    相关 HibernateIBatis对比

    项目也做过几个, 使用IBatis就做一个项目, 基本上都是使用Hibernate, 也只是知道几点关于这两个框架的区别, 今天闲着没事干, 从网上找了几篇文章, 做了一个简单

    相关 ibatis中$#区别

    在sql配置中比如in(rewr) 与in ($rewr$) 在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号和$之间