Hibernate产生的必要性.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hibernate产生的必要性 我们所开发的所有项目中,对持久性数据的管理,已经成为一个关键步骤。同样,持久化操作的效率,也就成为衡量一个项目好坏的主要标准之一。 在传统的项目开发中,持久化操作主要分为以下几种方式: 对象序列化 对象-关系映射 对象数据库 对象序列化技术主要采用的是Java IO 类库中的类来完成的,它可以将一个内存中的对象转换成二进制blob,然后将它写入硬盘中。在J2EE领域中,有状态会话Bean是对象序列化的一个典型案例。EJB容器可以将一个用户暂时不操作的Bean实例,保存到硬盘,此过程称为钝化(也叫对象冷藏),让用户再次请求该Bean实例的时候,再将其从硬盘还原回内存,此过程成为激活(也叫对象解冻)。那么在这样一个过程中,对象被从内存转移到硬盘,又从硬盘还原回内存,这样折腾了一大圈,我们所关注的什么?是状态,也就是对象属性值,因为这才是对象的特征,序列化的原则要保证对象在冷冻和解冻过程中,状态不能发生改变,否则这个过程就是不具备任何意义的。它的底层代码实现,可以通过以下这个示例程序加以说明: import java.io.*; class MyObject implements java.io.Serializable{ private Stirng name; public void setName(String name){this.name=name;} public String getName(){return this.name;} } class SaveObject{ public static void main(String args[]){ try{ FileOutputStream fout=new FileOutputStream(“obj.ser”); ObjectOutputStream obj=new ObjectOutputStream(fout); MyObject myobj=new MyObject(); myobj.setName(“序列化的对象状态”); obj.writeObject(myobj); obj.close(); fout.close(); } catch(IOException ex){ ex.printStackTrace(); } } } 以上这段代码,就是一个非常简单的序列化程序,它完成了对象冷冻的操作,将MyObject的实例保存到了一个名字叫obj.ser的文件中去了。 但是对于一个大型应用程序而言,对象状态的保存,是不能直接保存到平面文件上去的,这将导致数据难以管理。所以这个时候,数据库的重要性就突显出来了。 现在市面上流行的数据库,主要是关系型数据库管理系统,也就是我们经常听到的RDBMS,所谓关系型数据库,就是主要以二维表的形式来组织数据,(当然还会包括存储过程、视图、触发器之类的东东,但是主要的数据表现形式还是二维表),二维表主要由行和列组成,一行称为一条记录,一列称为一个字段。如果要使对象状态能够被保存到数据库,则该语言必须具备访问数据库的一系列接口,Java中使用JDBC API来操作数据库,例如: import java.sql.*; public class QueryApp{ public static void main(String a[]) { ResultSet result; try{ Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:MyDataSource,sa,ok); Statement stat=con.createStatement(); result=stat.executeQuery(Select * from Publishers); while(result.next()){ System.out.println(名字:\t+result.getString(2)); System.out.println(城市:\t+result.getString(city)); } } catch(Exception e){ System.out.println(Could not execute the query+e); } } } 以上代码是一段简单的JDBC代码,而且运行完全正确,不过

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档