仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1497|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA教程之Hibernate设置文件在单位测试中的使用

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:52:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的  Hibernate是一个盛行的开源对象干系映照工具,单位测试和延续集成的主要性也失掉了普遍的推行和认同,在接纳了Hibernate的项目中怎样包管测试的主动化和延续性呢?本文会商了Hibernate加载其设置文件hibernate.properties和hibernate.cfg.xml的历程,和怎样将hibernate供应的设置文件的会见办法天真使用到单位测试中。  先容  Hibernate是一个盛行的开源对象干系映照工具,单位测试和延续集成的主要性也失掉了普遍的推行和认同,在接纳了Hibernate的项目中怎样包管测试的主动化和延续性呢?本文会商了Hibernate加载其设置文件hibernate.properties和hibernate.cfg.xml的历程,和怎样将hibernate供应的设置文件的会见办法天真使用到单位测试中。注重:本文以hibernate2.1作为会商的基本,不包管本文的概念合适于其他版本。  读者   Java开辟职员,请求熟习JUnit和把握Hibernate的基本常识  内容  1.筹办  关于hibernate的初学者来讲,第一次利用hibernate的履历一般是:  1)安拆卸置好Hibernate,我们前面将%HIBERNATE_HOME%作为对Hibernate安装目次的援用,  2)入手下手创立好本人的第一个例子,比方hibernate手册内里的类Cat,  3)设置好hbm映照文件(比方Cat.hbm.xml,本文不会商这个文件内设置项的寄义)和数据库(如hsqldb),  4)在项目标classpath路径下增加一个hibernate.cfg.xml文件,以下(第一次利用hibernate最多见的设置内容):<?xmlversion="1.0"encoding="utf-8"?><!DOCTYPEhibernate-configuration  PUBLIC"-//Hibernate/HibernateConfigurationDTD//EN"  "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration><session-factory> <propertyname="connection.url">jdbc:hsqldb:hsql://localhost</property> <propertyname="connection.driver_class">org.hsqldb.jdbcDriver</property> <propertyname="connection.username">sa</property> <propertyname="connection.password"></property> <propertyname="dialect">net.sf.hibernate.dialect.HSQLDialect</property> <propertyname="hibernate.show_sql">false</property> <mappingresource="Cat.hbm.xml"/></session-factory></hibernate-configuration>  5)然后还必要供应一个类来测试一下创立,更新,删除和查询Cat,关于熟习JUnit的开辟职员,能够创立一个单位测试类来举行测试,以下:importjunit.framework.TestCase;importnet.sf.hibernate.HibernateException;importnet.sf.hibernate.Session;importnet.sf.hibernate.Transaction;importnet.sf.hibernate.cfg.Configuration;publicclassCatTestextendsTestCase{ privateSessionsession; privateTransactiontx; protectedvoidsetUp()throwsException{  Configurationcfg=newConfiguration().configure();////注重这一行,这是本文重点会商研讨的中央。  session=cfg.buildSessionFactory().openSession();  tx=session.beginTransaction(); } protectedvoidtearDown()throwsException{  tx.commit();  session.close(); } publicvoidtestCreate(){  //请在此办法内增加相干的代码,本文不会商怎样利用HibernateAPI。 } publicvoidtestUpdate(){  //请在此办法内增加相干的代码,本文不会商怎样利用HibernateAPI。 } publicvoidtestDelete(){  //请在此办法内增加相干的代码,本文不会商怎样利用HibernateAPI。 } publicvoidtestQuery(){  //请在此办法内增加相干的代码,本文不会商怎样利用HibernateAPI。 }}  2、newConfiguration()都做了甚么?  关于第一次利用hibernate的老手来讲,上面的这段代码能够说是最多见的利用Configuration体例。Configurationcfg=newConfiguration().configure();  Configuration是hibernate的出口,在新建一个Configuration的实例的时分,hibernate会在classpath内里查找hibernate.properties文件,假如该文件存在,则将该文件的内容加载到一个Properties的实例GLOBAL_PROPERTIES内里,假如不存在,将打印信息  hibernate.propertiesnotfound  然后是将一切体系情况变量(System.getProperties())也增加到GLOBAL_PROPERTIES内里(注1)。假如hibernate.properties文件存在,体系还会考证一下这个文件设置的无效性,关于一些已不撑持的设置参数,体系将打印告诫信息。  3、configure()在做甚么?  newConfiguration()会商至此,上面会商configure()办法。  configure()办法默许会在classpath上面寻觅hibernate.cfg.xml文件,假如没有找到该文件,体系会打印以下信息并抛出HibernateException非常。  hibernate.cfg.xmlnotfound  假如找到该文件,configure()办法会起首会见<session-factory>,并猎取该元素的name属性,假如非空,将用这个设置的值来掩盖hibernate.properties的hibernate.session_factory_name的设置的值,从这里我们能够看出,hibernate.cfg.xml内里的设置信息能够掩盖hibernate.properties的设置信息。  接着configure()办法会见<session-factory>的子元素,起首将利用一切的<property>元素设置的信息(注2),如后面我们利用的设置文件<propertyname="connection.url">jdbc:hsqldb:hsql://localhost</property><propertyname="connection.driver_class">org.hsqldb.jdbcDriver</property><propertyname="connection.username">sa</property><propertyname="connection.password"></property><propertyname="dialect">net.sf.hibernate.dialect.HSQLDialect</property>  会掩盖hibernate.properties内里对应的设置,hibernate2.1公布包内里自带的hibernate.properties文件(位于%HIBERNATE_HOME%/etc上面)内里的值,以下:hibernate.dialectnet.sf.hibernate.dialect.HSQLDialecthibernate.connection.driver_classorg.hsqldb.jdbcDriverhibernate.connection.usernamesahibernate.connection.passwordhibernate.connection.urljdbc:hsqldb:hsql://localhost  然后configure()会按次会见以下几个元素的内容<mapping><jcs-class-cache><jcs-collection-cache><collection-cache>  个中<mapping>是必不成少的,必需经由过程设置<mapping>,configure()才干会见到我们界说的java对象和干系数据库表的映照文件(hbm.xml),比方:<mappingresource="Cat.hbm.xml"/>  经由过程以上的剖析,我们对hibernate设置文件hibernate.properties和hibernate.cfg.xml的默许的加载历程就对照分明了。
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-21 16:37:04 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
变相怪杰 该用户已被删除
板凳
发表于 2015-1-24 11:52:33 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
莫相离 该用户已被删除
地板
发表于 2015-1-25 17:12:14 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
5#
发表于 2015-1-27 05:31:18 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
精灵巫婆 该用户已被删除
6#
发表于 2015-2-10 22:27:07 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-1 16:43:56 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
小妖女 该用户已被删除
8#
发表于 2015-3-10 19:58:26 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
深爱那片海 该用户已被删除
9#
发表于 2015-3-11 23:11:32 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
金色的骷髅 该用户已被删除
10#
发表于 2015-3-19 15:54:10 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
飘飘悠悠 该用户已被删除
11#
发表于 2015-3-25 07:45:05 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
admin 该用户已被删除
12#
发表于 2015-3-29 08:08:03 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
海妖 该用户已被删除
13#
发表于 2015-4-4 14:55:23 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
若天明 该用户已被删除
14#
发表于 2015-4-7 07:49:38 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
小女巫 该用户已被删除
15#
发表于 2015-4-28 21:12:11 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
活着的死人 该用户已被删除
16#
发表于 2015-5-9 12:27:06 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
柔情似水 该用户已被删除
17#
发表于 2015-7-3 09:08:41 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
小魔女 该用户已被删除
18#
发表于 2015-7-6 09:30:35 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
老尸 该用户已被删除
19#
发表于 2015-7-8 06:04:06 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-3 14:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表