什么是Hibernate框架以及ORM

什么是Hibernate框架以及ORM,第1张

框架是一个建筑学上的概念,但是用在程序这是什么意思呢?

什么是框架

1写程序,使用框架之后,帮我们实现一部分功能,少写一部分代码就能实现我们的功能。

什么是Hibernate框架?

1、Hibernate框架是应用在javaEE三层结构中的dao层框架。

2、在dao层里面做对数据库的增删改查 *** 作,使用Hibernate框架实现增删改查 *** 作。Hibernate底层就是jdbc,对jdbc的轻量级的封装,使用Hibernate不需要写复杂的jdbc代码。

3、Hibernate是开源的、轻量级的框架。

轻量级的框架:Hibernate不需要依赖其他的东西就可以直接使用。

Hibernate是使用ORM思想对数据库进行的增删改查 *** 作。

什么是ORM

ORM(Object/Relational Mapping):对象/关系映射

是通过使用描述对象和数据库之间映射的数据,将java程序中的对象自动持久化到关系数据库中;

本质上就是将数据从一种形式转换到另外一种形式。

利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是要编写很多

和底层数据库相关的SQL语句。

但是写SQL语句的缺点:

①不同的数据库使用的SQL语法不同。

②同样的功能在不同的数据库中有不同的实现方式。比如分页SQL。

③程序过分依赖SQL对程序的一直及扩展,维护等带来很大的麻烦。

ORM---对象关系映射模型,是Hibernate的核心模型。

它指的是在单个组件内负责所有实体域对象的持久化,封装数据访问的细节。简单的说是实现三层模式中业务逻辑与数据访问的分离。

一般的,对数据库的 *** 作是通过JDBC实现的:举例看下:

public void delete(Object o)

{

Connection con = null;

PreparedStatement stmt = null;

try{

con = getConnection();

if(ogetID != null ){

stmt = conpreparedStatement("DELETE FROM user where" +"id=""123456");

stmtsetID(0,ogetId());

stmtexecuteUpdate();

concommit();

}

catch(Exception e)

{

eprintStackTrace();

}

}

}

我们可以从上面的代码中发现,数据访问语句(SQL)与业务逻辑处理混在一起了。有经验的人会知道,这样对开发维护都造成很大影响。

可是,有人会说,将那些数据访问的代码封装在一个类中,提供API不就可以解决问题了。

但是问题不是那么简单,尽管将那些访问 *** 作的实现都封装在一起了,但是同意会遇到一些问题,封装类中会充满很多相类似的方法,比如CURD等 *** 作都需要查询,每个方法都要写入查询的语句会使得程序看起来相当臃肿。而且主要问题还是没有得到很好的解决――――持久化层的同时又与关系模型和域模型耦合了,而且咋看之下还显得缺乏d性。

下面是5个可用ORM的总体介绍:

1 OrmLite

OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM。支持JDBC连接,Spring以及Android平台。语法中广泛使用了注解(Annotation)。

2 SugarORM

SugarORM 是 Android 平台专用ORM。提供简单易学的APIs。可以很容易的处理1对1和1对多的关系型数据,并通过3个函数save(), delete() 和 find() (或者 findById()) 来简化CRUD基本 *** 作。

要启用SugarORM,需要在你的应用程序 AndroidManifestxml 配置中添加如下meta-data标签:

<meta-data android:name="DATABASE" android:value="my_databasedb" />

<meta-data android:name="VERSION" android:value="1" />

<meta-data android:name="QUERY_LOG" android:value="true" />

<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="commy-domain" />

然后就可以从SugarORM扩展需要保存的数据类:

public class User extends SugarRecord<User> {

String username;

String password;

int age;

@Ignore

String bio; //this will be ignored by SugarORM

public User() { }

public User(String username, String password,int age){

thisusername = username;

thispassword = password;

thisage = age;

}

}

要添加一个User,代码如下:

User johndoe = new User(getContext(),"johndoe","secret",19);

johndoesave(); //stores the new user into the database

3 GreenDAO

当性能很重要时(数据访问频繁),GreenDao是一个很快的解决方案,它能够支持数千条记录的CRUD每秒,和OrmLite相比,GreenDAO要快几乎45倍。(准确数据请自行benchmark)。

GreenDAO小于100KB,所以对于应用程序APK的大小影响很小。

这里有一个教程,演示如何使用Android Studio,在Android应用程序中使用GreenDAO框架。

4 Active Android

Active Record(活动目录)是Yii、Rails等框架中对ORM实现的典型命名方式。Active Android 帮助你以面向对象的方式来 *** 作SQLite。

5 Realm

Realm 是一个将可以使用的Android ORM,基于C++编写,直接运行在你的设备硬件上(不需要被解释),因此运行很快。它同时是开源跨平台的,iOS的代码可以在GitHub找到,你还可以找到Objective C以及Swift编写的Realm使用实例。

以上就是关于什么是Hibernate框架以及ORM全部的内容,包括:什么是Hibernate框架以及ORM、怎么解释ORM、ios有什么好的开源本地数据库orm等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9681695.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存