欢迎来到天天文库
浏览记录
ID:32020305
大小:58.93 KB
页数:38页
时间:2019-01-30
《Hibernate 3 深度解析.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Hibernate作为JavaORM模式的优秀开源实现,当下已经成为一种标准,为饱受JDBC折磨的Java开发者带来了“福音。快速的版本更新,想开发者所想,Hibernate的开发团队俨然就是我们开发者的知音呀。随着Hibernate的用户群的越来越壮大,Hibernate的功能也变得更加强大和健硕起来,下面就对于我们比较常用和关心的一些内容做一些比较深入的探讨,我们的宗旨就是不但会灵活应用,还能知其所以然,不要求大家一定要把Hibernate的原理弄的很清楚,但其中一些好的模式,好的设计方法及其中重要功能的实现原理和方法还是对我们很有帮助的。
2、我们将会从Hibernate的对象关系映射,Hibernate的事务处理,Hibernate对大数量的处理方法以及Hibernate根据不同情况怎样来调整性能等方面来和大家共同探讨。下面我们开始讲解Hibernate的对象关系映射。深度探索一(Hibernate的对象关系映射)首先我们新建一个Javaproject,命名为hibernate-deep-research。我们知道现在通过数据表反生成的Java对象的工具很多,比如JbossTools的HibernateTools等,选择你熟悉的就好了,都大同小异的,为了更好的掌握基本知识,本文没使
3、用这些工具,第一步我们首先完成Hibernate的配置文件-hibernate.cfg.xml,,该文件内容见清单1所示:清单1.hibernate.cfg.xml内容4、bernate-configuration>falseorg.h2.Driverjdbc:h2:~/test5、>saorg.hibernate.dialect.H2Dialect从这个Hibernate的配置文件中我们可以看出本文使用的数据库为H2,所以我们要6、将H2的jar包引到本工程中。关于H2的使用方法,这里不做详细介绍了,它是HSQLDB的重写,速度更快些。我们还需要一个POJO对象类Test,值得注意的是我们这里mapping属性设置的是class而不是resource,如果是resource我们就需要指定hbm的xml文件,下面我们看下Test这个类,POJOTest类的详细代码见清单2所示:清单2.Test对象类内容@Entity@Table(name="TEST",schema="PUBLIC",catalog="TEST")publicclassTestimplementsjava.7、io.Serializable{privateintid;privateStringname;publicTest(){}publicTest(intid){this.id=id;}publicTest(intid,Stringname){this.id=id;this.name=name;}@Id@Column(name="ID",unique=true,nullable=false)publicintgetId(){returnthis.id;}publicvoidsetId(intid){this.id=id;}@Column(name=8、"NAME",length=10)publicStringgetName(){returnthis.name;}publicvoidsetName(S
4、bernate-configuration>falseorg.h2.Driverjdbc:h2:~/test5、>saorg.hibernate.dialect.H2Dialect从这个Hibernate的配置文件中我们可以看出本文使用的数据库为H2,所以我们要6、将H2的jar包引到本工程中。关于H2的使用方法,这里不做详细介绍了,它是HSQLDB的重写,速度更快些。我们还需要一个POJO对象类Test,值得注意的是我们这里mapping属性设置的是class而不是resource,如果是resource我们就需要指定hbm的xml文件,下面我们看下Test这个类,POJOTest类的详细代码见清单2所示:清单2.Test对象类内容@Entity@Table(name="TEST",schema="PUBLIC",catalog="TEST")publicclassTestimplementsjava.7、io.Serializable{privateintid;privateStringname;publicTest(){}publicTest(intid){this.id=id;}publicTest(intid,Stringname){this.id=id;this.name=name;}@Id@Column(name="ID",unique=true,nullable=false)publicintgetId(){returnthis.id;}publicvoidsetId(intid){this.id=id;}@Column(name=8、"NAME",length=10)publicStringgetName(){returnthis.name;}publicvoidsetName(S
5、>saorg.hibernate.dialect.H2Dialect从这个Hibernate的配置文件中我们可以看出本文使用的数据库为H2,所以我们要
6、将H2的jar包引到本工程中。关于H2的使用方法,这里不做详细介绍了,它是HSQLDB的重写,速度更快些。我们还需要一个POJO对象类Test,值得注意的是我们这里mapping属性设置的是class而不是resource,如果是resource我们就需要指定hbm的xml文件,下面我们看下Test这个类,POJOTest类的详细代码见清单2所示:清单2.Test对象类内容@Entity@Table(name="TEST",schema="PUBLIC",catalog="TEST")publicclassTestimplementsjava.
7、io.Serializable{privateintid;privateStringname;publicTest(){}publicTest(intid){this.id=id;}publicTest(intid,Stringname){this.id=id;this.name=name;}@Id@Column(name="ID",unique=true,nullable=false)publicintgetId(){returnthis.id;}publicvoidsetId(intid){this.id=id;}@Column(name=
8、"NAME",length=10)publicStringgetName(){returnthis.name;}publicvoidsetName(S
此文档下载收益归作者所有