JAVA网站制作之老康:Java开源项目Hibernate疾速进门
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。疾速进门|项目老康
实在Hibernate自己是个自力的框架,它不必要任何webserver或applicationserver的撑持。但是,年夜多半的Hibernate进门先容都到场了良多非Hibernate的工具,好比:Tomcat,Eclipse,Log4J,Struts,XDoclet,乃至JBoss。这简单让人发生Hibernate庞大难明的曲解,出格是冲击了初学者的主动性。 在这篇文章将不触及Eclipse,log4j,Struts,Tomcat,XDoclet,和JBoss。本文的目标是演示一下Hibernate的安装历程和最基础的功效,从而给初学者一个低得不克不及再低的进门门坎。 下载文件 你必要JavaSDK、Hibernate包、Ant包、和JDBCDriver。 1、Hibernate包下载地点:http://prdownloads.sourceforge.net/hibernate/?sort_by=date&sort=desc 2、Ant包下载地点:http://apache.130th.net/ant/binaries/apache-ant-1.6.1-bin.zip 3、JDBCDriver要依据你用的database来定,一样平常database官方网站上城市有。Hibernate撑持经常使用的database,好比MySQL,Oracle,PostgreSQL,和MS-SQLServer。这些数据库都有JDBCDriver: OracleJDBCDriver下载地点(下载前必需批准Oracle协定书)http://otn.oracle.com/software/htdocs/distlic.html?/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html MySQLJDBCDriver下载地点http://dev.mysql.com/downloads/connector/j/3.0.html PostgreSQLJDBCDriver下载地点http://jdbc.postgresql.org/download.html MS-SQLServerJDBCDriver下载地点http://www.microsoft.com/downloads/details.aspx?FamilyID=9f1874b6-f8e1-4bd6-947c-0fc5bf05bf71&displaylang=en 4、将Hibernate包和Ant包分离解压至c:dev下(此目次不主要,你能够换别的任何目次)。 设置情况 1、你必要增加一个新的情况变量:ANT_HOME,让它指向c:dev<你的ANT包地点目次>。并在PATH情况变量里增加%ANT_HOME%in。 2、你必要增加一个新的情况变量:JAVA_HOME,让它指向你的j2sdk根目次。并在PATH情况变量里增加%JAVA_HOME%in。 3、创立一个项目目次,好比c:workspaceMy1stHibernate。 在项目目次下,别的创立三个目次:src,classes,lib。 在lib目次下,创立两个目次:hibernate和db。 如许你有了以下的文件布局:c:workspaceMy1stHibernatec:workspaceMy1stHibernatercc:workspaceMy1stHibernateclassesc:workspaceMy1stHibernatelibc:workspaceMy1stHibernatelibhibernatec:workspaceMy1stHibernatelibdb 4、将c:dev<你的Hibernate包地点目次>hibernate2.jar文件copy到c:workspaceMy1stHibernatelibhibernate下。 将c:dev<你的Hibernate包地点目次>lib下的一切文件一样copy到c:workspaceMy1stHibernatelibhibernate下。 将你的JDBCDriver文件(通常为一个jar文件)copy到c:workspaceMy1stHibernatelibdb下。
c:workspaceMy1stHibernatec:workspaceMy1stHibernatercc:workspaceMy1stHibernateclassesc:workspaceMy1stHibernatelibc:workspaceMy1stHibernatelibhibernatec:workspaceMy1stHibernatelibdb 4、将c:dev<你的Hibernate包地点目次>hibernate2.jar文件copy到c:workspaceMy1stHibernatelibhibernate下。 将c:dev<你的Hibernate包地点目次>lib下的一切文件一样copy到c:workspaceMy1stHibernatelibhibernate下。 将你的JDBCDriver文件(通常为一个jar文件)copy到c:workspaceMy1stHibernatelibdb下。 创立数据库 1、用你最喜好的database软件,创立一个hibernate_test的数据库。 2、在此数据库下,新建一个table名为CUSTOMERCREATETABLECUSTOMER( CIDINTEGERNOTNULLPRIMARYKEY,USERNAMEVARCHAR(12)NOTNULL,PASSWORDVARCHAR(12)); 编写Java文件publicclassCustomer{ privateintid; privateStringusername; privateStringpassword; publicintgetId(){ returnid; } publicStringgetPassword(){ returnpassword; } publicStringgetUsername(){ returnusername; } publicvoidsetId(intid){ this.id=id; } publicvoidsetPassword(Stringpassword){ this.password=password; } publicvoidsetUsername(Stringusername){ this.username=username; }} 将此类存为c:workspaceMy1stHibernatercCustomer.java文件。 编写Test类importnet.sf.hibernate.*;importnet.sf.hibernate.cfg.*;publicclassTest{ publicstaticvoidmain(String[]args){ try{ SessionFactorysf=newConfiguration().configure().buildSessionFactory(); Sessionsession=sf.openSession(); Transactiontx=session.beginTransaction(); for(inti=0;i<200;i++){ Customercustomer=newCustomer(); customer.setUsername("customer"+i); customer.setPassword("customer"); session.save(customer); } tx.commit(); session.close(); }catch(HibernateExceptione){ e.printStackTrace(); } }} 将此类存为c:workspaceMy1stHibernatercTest.java文件。 创立Hibernate映照文件 由于这里只要一个Class---Customer和一个Table---CUSTOMER,你只必要创建一个映照文件---Customer.hbm.xml,来对应Customer类和CUSTOMER表之间的干系。<?xmlversion="1.0"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD//EN""http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"><hibernate-mapping><classname="Customer"table="CUSTOMER"><idname="id"column="CID"><generatorclass="increment"/></id><propertyname="username"column="USERNAME"/><propertyname="password"column="PASSWORD"/></class></hibernate-mapping> 把此文件存为c:workspaceMy1stHibernatercCustomer.hbm.xml,和Customer.java放在统一目次下。 编写Antbuild.xml文件 你纷歧定要晓得这个build.xml的细节,实在Ant也不是Hibernate所必需的。这里用Ant是为了简化一些义务,好比:编译、copy、运转,等。<?xmlversion="1.0"?><projectname="My1stHibernate"default="build"basedir="."><propertyname="base.dir"value="."/><propertyname="src.dir"value="src"/><propertyname="lib.dir"value="lib"/><propertyname="build.dir"value="classes"/><pathid="myclasspath"><filesetdir="${lib.dir}"><includename="**/*.jar"/></fileset><pathelementlocation="${build.dir}"/></path><targetname="init"><mkdirdir="${build.dir}"/></target><targetname="build"depends="init"description="compilethesourcefiles"><javacclasspathref="myclasspath"srcdir="${src.dir}"destdir="${build.dir}"/><copytodir="${build.dir}"><filesetdir="${src.dir}"><excludename="**/*.java"/></fileset></copy></target><targetname="run"depends="build"><javaclasspathref="myclasspath"classname="Test"fork="true"/></target><targetname="clean"><deleteincludeEmptyDirs="true"><filesetdir="${build.dir}"/></delete></target></project> 设置Hibernate形貌文件 Hibernate形貌文件能够是一个properties或xml文件,个中最主要的是界说数据库的毗连。我这里列出的是一个XML格局的hibernate.cfg.xml形貌文件。<?xmlversion="1.0"encoding="utf-8"?><!DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/HibernateConfigurationDTD//EN""http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration><session-factoryname="java:/hibernate/HibernateFactory"><propertyname="show_sql">true</property><propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver<!--这里是Oracle9i的JDBCdriverclass名--></property><propertyname="connection.url">jdbc:oracle:oci8:@hibernate_test<!--这里是Oracle的hibernate_test数据库URL--></property><propertyname="connection.username">你的数据库用户名</property><propertyname="connection.password">你的数据库暗码</property><propertyname="dialect">net.sf.hibernate.dialect.Oracle9Dialect<!--这里是Oracle9i的Dialect--></property><mappingresource="Customer.hbm.xml"/><!--指定Customer的映照文件--></session-factory></hibernate-configuration> 假如你用的不是Oracle9i,可到C:dev<你的Hibernate包地点目次>rchibernate.properties文件里找到你的数据库,然后交换以上绝对应的值。 入手下手运转 到c:workspaceMy1stHibernate下,运转antrun。假如你严厉按照以上步骤,应当看到run:log4j:WARNNoappenderscouldbefoundforlogger(net.sf.hibernate.cfg.Environment).log4j:WARNPleaseinitializethelog4jsystemproperly.Hibernate:insertintoCUSTOMER(USERNAME,PASSWORD,CID)values(?,?,?)BUILDSUCCESSFUL 到你的hibernate_test数据库看一下,在CUSTMOR内外新添了200笔记录,但你没有写任何JDBCcode。 今后假如你要改换数据库,只必要改动hibernate.cfg.xml形貌文件里响应的值便可。
你通过从书的数量和开发周期及运行速度来证明:net和ruby要比java简单。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 是一种使用者不需花费很多时间学习的语言 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 是一种突破用户端机器环境和CPU Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 是一种使网页(Web Page)产生生动活泼画面的语言 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
页:
[1]