好东西不私藏,大家一起分享!爱站云 用心做
广告位 后台主题配置管理

网站首页 爱站云资源网 值得一看 正文

持久化 持久化对象的三种状态

爱站云 2020-08-13 值得一看 0 评论

  一直听人说数2113据库持久化,也想5261学这方面的技术,但是什么是数据4102库持久化呢?持久数据其实1653就是将数据保存到数据库。数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称;数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等;cmp和Hibernate只是对象模型到关系模型之间转换的不同实现。只不过对象模型和关系模型应用广泛,所以就会误认为数据持久化就是对象模型到关系型数据库的转换罢了。“持久化”这个概念是和“暂时”等概念相对的,数据在计算机中有一般有两个存储地,内存为暂存,因为电源关机就会数据丢失,如果需要反复使用,就要持久保存,实现持久化了。为什么要持久化?持久化技术封装了数据访问细节,为大部分业务逻辑提供面向对象的API。1.通过持久化技术可以减少访问数据库数据次数,增加应用程序执行速度;2.代码重用性高,能够完成大部分数据库操作;3.松散耦合,使持久化不依赖于底层数据库和上层业务逻辑实现,更换数据库时只需修改配置文件而不用修改代码。


  持久化类和持久化对象分别指什么?有什么作用?区别


  首先持久化作用是将2113程序数据在持5261久状态和瞬时状态间转换的4102机制。即把数据(如内存中的对1653象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。


  一般来说,持久化类(persistentclass):可以被hibernate保存到数据库,并且从数据库读取的类。


  持久化类:是指其实例需要被Hibernate持久化到数据库中的类。持久化类符合javaBean的规范,包含一些属性,以及与之对应的getXXX()和setXXX()方法。而持久化对象就是把对象保存至数据库或者文件中。


  区别就是:持久化类是能够实现持久化的类-也就是该类符合JavaBean的规范和持久化标准的一些操作。而持久化对象就是:持久化类的实例对象,并且将至保存到数据库或者文件中。


  如何用PHP实现持久化处理


  你是指数据持久化还2113是运行持久化?如果是数5261据持久化,可以使用serialize()和unserialize()来处理.


  试一试4102:


  <?php$str='';$array=array('php','数据','持久化');$str=serialize($array);//可以将数组1653$array序列化成字符串并赋值给字符串变量$strecho$str;//将输出一串序列化编码后的字符串$array=unserialize($str);//可以将之前序列化后的字符串反解析成数组给$array变量.print_r($array);?>


  使用上面的方法可以将复杂的数组之类的数组转换成字符串形式持久保存到数据库或文件或session中了.


  hibernate如何实现持久化?


  你没用过2113hibernate吗?


  hibernate是一种ORM(objectrelationmapping,对象5261关系映射)框架,所谓的对象关系映射,通俗的说,4102就是把JAVA对象保存到关系型数据库中。


  hibernate要做的事,就是让对象投影到关系数据库中,然后实施持久化。其具体实现:


  建立对象到关系数据库的映射。


  example:建立User类到数据库的映射


  一个简单的类User:


  publicclassUser{


  privateintid;


  privateStringname;


  }


  User类对应的数据库表USER:


  column-nametyperule


  idnumberP


  namevarchar2R


  当进行持久化时,需要把对1653象的两个属性的值保存到数据库存的USER中,如果使用JDBC的话,我们需要自己写SQL,并获取对象两个属性的值作为参数来进行持久话。SQL可能如下:


  insertintoUSER(name)value(?);


  当使用hibernate时,首无要作好对象到表的映射关系,使用配置文件来实现:


  User.hbm.xml:


  ...


  <classname="user"table="USER"><!--该类对象保存到USER表-->


  <idname="id"column="id">


  <generatorclass="native"/><!--这里有很多策略来生成ID,这里选择本地自动生成,-->


  </id>


  <propertyname="name"column="name">


  </class>


  ...


  然后在通过hibernate.cfg.xml中配置到数据库的联接,并读取User.hbm.xml文件,就建立了映射关系了。


  当需要持久化对象时,需要使用到hibernate的session对象:


  session.save(newUser());


  看到了吗?我们只需要操作对象就行了,也就是说,编程的人不需要看到数据库了,他只需要直接操作对象就行了。


  hibernate如何实现持久化?


  答:


  1.hibernate是一种ORM(objectrelationmapping,对象关系映射)框架,所谓的对象关系映射,通俗的说,就是把JAVA对象保存到关系型数据库中,即进行持久化的框架。


  2.hibernate进行持久化首先要建立对象到关系数据库的映射。


  3.hibernate根据定义的映射规则将对象持久化(保存到)数据库存中。这就实现了对象持久化。

< 爱站云SEO >
本站所有文章,未经允许一律不允许转载,违者后果自负
本站为SEO教学博客,学到东西应该懂得感恩作者 无脑喷子永封IP段+删帐号所有评论
本站部分文章存在于网上收集,如侵犯您的权利,请告知管理员,我们会及时删除,并向您赔礼道歉.

百秀社区爱站云 官方QQ群:333914614


猜你喜欢

本文暂时没有评论哦(●'◡'●)

欢迎 发表评论:

温馨提示:(登陆后才可以评论哦!点我QQ登录哦,若已登录请忽略)。
«   2021年3月   »
1234567
891011121314
15161718192021
22232425262728
293031
网站分类
搜索
最新留言
文章归档
标签列表