在解压缩的hibernate-distribution-3.3.1.GA目录中,把hibernate.jar ,和\lib\required\下的所用jar包 引进到我们项目的lib目录下。
不知道用过Hibernate3.3开发的朋友会不会遇到过这样的问题:把上面的包都准备好的,开发Hibernate测试类时,会报Caused by: java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder 或者Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/LogManager 的错误。这是因为Hibernate3.3提供的jar包,缺少了slf4j-log4j12.jar 这个包。解决办法是:在Hibernate的官方网站上下载hibernate-annotations-3.4.0.GA.zip ,解压缩,把其\lib\下的slf4j-log4j12.jar 引进我们项目的lib目录下。而我们引进这个jar包后,若我们没有引进log4j.jar 的话,就会报java.lang.NoClassDefFoundError: org/apache/log4j/LogManager的错误,可能是slf4j-log4j12.jar 要用调用log4j的类吧。我们也引进log4j.jar 即行。
当然,hibernate-annotations-3.4.0.GA.zip 是我们开发Hibernate Annotation所要用到的,除以上面那些jar包外,我们还要引进其hibernate-annotations.jar ,及其\lib\下的hibernate-commons-annotations.jar ,ejb3-persistence.jar 。好,暂时就这些,我们接下来需要用到哪些jar包时再引进。
(如果说,使用JPA的Hibernate实现的话,还必需加入hibernate-entitymanager.jar,就呆以使用JPA了)
好,第一步,来开发我们的实体类User。代码如下:
简单解释一下吧:
@Entity定义User类为实体类,@Id定义该属性对应的列为主键,@GeneratedValue(strategy=GenerationType.IDENTITY)定义主键生成策略为Indentity,适用于MySQL和MS SQL等数据库。@Column(name="username", length=15)定义列名和取值长度。
应该不难的,更多有关Hibernate的注解,请下载并参考我整理的Hibernate Annotation帮助文档 /Files/rongxh7/hibernateAannotations.rar 。慢慢学吧!
当然,必要的XML配置文件还是要有的:
到这里,我们可以运行Tomcat,Hibernate会根据hbm2ddl.auto自动地把实体类与属性转变成数据库中的表与列。但这一步,要事先在数据库中建立一个名为"ssh_annotation"的空数据库。好了,看一下,你的数据库中是否有"tb_user"的表生成了?!
接下来,我们来开发一个包装器类,取名HibernateUtil,代码如下:
学过Hibernate的朋友们,应该对这个类不陌生吧。在此,我就不多解释啦,注意一下我注释的地方就行。下面,我们来进行测试,下载最新版本的Junit4.5.jar ,试一下感觉如何。当然,旧版本的应该也没问题的啦!写测试代码如下:
到此,我们的Hibernate Annotation开发完成了。你成功了没?如果有什么问题,请回复,我尽力为你解答!好,第一阶段暂告一段落。不要忘记,我们是要做的是基于Annotatioln的SSH整合开发,让我们一起期待下一阶段吧!
(*^-^*) 本文原创,转载请注明出处, http://www.blogjava.net/rongxh7 谢谢! (*^-^*)
自己总结说明:
hibernate核心包(在hibernate-distribution-3.3.1.GA里):
hibernate3.jar
必需依赖的包(在hibernate-distribution-3.3.1.GA里的lib目录下的required目录里):
antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
javassist-3.4.GA.jar
jta-1.1.jar
slf4j-api-1.5.2.jar
另外一些必需依赖的日志包(在hibernate-entitymanager-3.4.0.GA里或hibernate-annotations-3.4.0.GA里):
slf4j-log4j12.jar
log4j.jar
注释或者说JPA必需依赖的包(在hibernate-entitymanager-3.4.0.GA里或hibernate-annotations-3.4.0.GA里):
hibernate-annotations.jar
hibernate-commons-annotations.jar
ejb3-persistence.jar
JPA必需依赖的包(在hibernate-entitymanager-3.4.0.GA里):
hibernate-entitymanager.jar