冷月葬花魂 发表于 2015-1-18 11:13:03

JAVA网站制作之Eclipse疾速上手Hibernate之进门实例

为什么外国人还要写那些框架进行代码封装,他们不就是为了别人使用时可以更简单么!如果要达到一个企业级项目的不用框架是很难的。小一些的项目还行,大的光是MVC模式的设计的编码量就够大的了。还有性能方面,单轮windows,这个工具是微软写的,。  这篇文章次要谈谈Hibernate的进门开辟,例子很复杂,就是向数据表中增加用户名和暗码。我分离利用了三种办法,一种是间接写代码,写Hbm映照文件等;一种是经由过程Hbm映照文件来天生代码;一种是经由过程代码来天生Hbm映照文件。利用了一些主动化工具,XMLBuddy是用来编纂XML文件的,JBossEclipseIDE是用来编写Doclet标志的。这篇文章还谈到了一些Eclipse的利用技能,好比创建“用户库”、“天生Getter和Setter”等。

  关于一些软件的利用技能,我之前的文章都有说起,这里未几说了,需要时会提醒一下。

  1、下载、安装和设置1.所需软件

  ●Ant1.6.2http://ant.apache.org

  下载http://mirror.apache.or.kr/ant/binaries/apache-ant-1.6.2-bin.zip

  ●Eclipse3.0.1及言语包

  参考:http://blog.csdn.net/javamxj/archive/2004/10/11/131952.aspx

  ●XDoclet1.2.2http://xdoclet.sourceforge.net/xdoclet/

  下载http://prdownloads.sourceforge.net/xdoclet/xdoclet-bin-1.2.2.zip?download

  ●XMLBuddyhttp://www.xmlbuddy.com/

  下载XMLBuddy2.0.38●JBossEclipseIDEhttp://www.jboss.org/products/jbosside

  看看申明,必要选择与利用的eclipse绝对应的版本,这里选择JBossIDE-1.4.1-e30.zip,这是它的镜像下载地点:

http://prdownloads.sourceforge.net/jboss/JBossIDE-1.4.1-e30.zip?download●Hibernatehttp://www.hibernate.org/

  下载Hibernate2.1.8

http://prdownloads.sourceforge.net/hibernate/hibernate-2.1.8.zip?download同时也要把HibernateExtensions2.1.3下载了,它包括一些工具类。

  下载http://prdownloads.sourceforge.net/hibernate/hibernate-extensions-2.1.3.zip?download

  ●MySQL4.1.8

  参考:http://blog.csdn.net/javamxj/archive/2005/01/13/251861.aspx

  注重必要mysql-connector-java-3.0.16-ga-bin.jar文件

  2.安装和设置

  这里侧重指出一下,必要在情况变量中设置ANT_HOME,并将其指向Ant安装目次,还要在Path变量值中增加“%ANT_HOME%in;”能够参考java情况变量设置。・XMLBuddy和Jboss-ide我都是接纳links体例安装的,参考http://blog.csdn.net/javamxj/archive/2004/10/11/132311.aspx

  ●创建库文件夹:在D盘下新建一个java目次,在此目次下新建一个Hibernate子目次,在此子目次下再新建一个lib子目次。

D:

-java

-Hibernate

-lib

  ・将下载的hibernate-2.1.8.zip解压,如解压后的目次名为hibernate-2.1,将这个目次下的hibernate2.jar复制到先前创建的lib目次下,即D:javaHibernatelib目次;

  ・然后将hibernate-2.1目次下的lib子目次中的以下文件也复制到这个lib目次下:

jta.jarcglib-full-2.0.2.jarcommons-collections-2.1.1.jarcommons-logging-1.0.4.jarcommons-lang-1.0.1.jardom4j-1.4.jarehcache-0.9.jarlog4j-1.2.8.jarodmg-3.0.jarodmg-3.0.jar

  ・解压hibernate-extensions-2.1.3.zip,将其子目次tools中的hibernate-tools.jar和子目次lib中的velocity-1.3.1.jar、jdom.jar也复制到D:javaHibernatelib目次中

  ・解压xdoclet-bin-1.2.2.zip,将其子目次lib中的xdoclet-1.2.2.jar、xdoclet-hibernate-module-1.2.2.jar、xjavadoc-1.1.jar、xdoclet-xdoclet-module-1.2.2.jar也复制到D:javaHibernatelib目次中

  ・最初将mysql-connector-java-3.0.16-ga-bin.jar文件复制到这个lib目次下。

  如许,必要用到的库文件已筹办好了,假如以为如许对照贫苦,也能够将jar文件全体复制到lib目次。上面先容怎样在Eclipse中设置“用户库”。

  ●设置“用户库”・窗口->首选项->Java->构建路径->用户库,





  ・然后单击“增加JAR”





  如许,一个用户库文件就做好了,假如要更新Eclipse时,能够将其先导出,然后再导进便可。

如许做,对库文件便于办理,并且假如必要交换大概晋级的话都对照便利。

  ●设置“构建路径”

  ・点击菜单“窗口”->首选项,以下都在“首选项”中设置:

Java->构建路径





  2、项目理论

  这里以一个复杂的程序来树模Hibernate的设置与功效,在这个例子中的一些操纵,实践上会利用一些主动化工具来完成,而纷歧订婚自手动操纵设定,这边完整手动的缘故原由,在于让你能够晓得Hibernate的基础流程。

  这是全部项目标布局:





  好了,上面就入手下手创立项目了。

  1.创立项目

  ・新建一个Java项目:HibernateBegin_1,注重选中“创立独自的源文件夹和输入文件夹”。点击“下一步”,切换到“库”,点击“增加库”,以下图:



  ・选择“用户库”





  ・勾选先前设置好的hibernate用户库。



  2.创建可耐久化类

  ・上面入手下手创立一个新类:User;包名:javamxj.hibernate;

  然后增加三个变量(斜体),代码以下:
/*
*接纳惯例办法开辟一个复杂的Hibernate实例
*创立日期2005-3-31
*@authorjavamxj(分享java康乐)
*@linkBlog:htpp://javamxj.mblogger.cn
*htpp://blog.csdn.net/javamxj/
*/
packagejavamxj.hibernate;
publicclassUser{
privateintid;
privateStringusername;
privateStringpassword;
}
  ・点击工具栏上的“源代码(S)”,选择个中的“天生Getter和Setter”(右击,在弹出菜单也可选择),如图:



  点击“断定”后,天生以下代码:
/*
*接纳惯例办法开辟一个复杂的Hibernate实例
*创立日期2005-3-31
*@authorjavamxj(分享java康乐)
*@linkBlog:htpp://javamxj.mblogger.cn
*htpp://blog.csdn.net/javamxj/
*/
packagejavamxj.hibernate;
publicclassUser{
privateintid;
privateStringusername;
privateStringpassword;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
}
  好了,这个类完成了。它是一个一般的Java对象(PlainOldJavaObjects,就是POJOs,偶然候也称作PlainOrdinaryJavaObjects),暗示一个数据汇合。上面创建一个Hbm文件将这个类映照到数据库的表格上。
  3.映照文件

  在javamxj.hibernate包下,新建一个称号为“User.hbm.xml”的文件,利用XMLBuddy编纂它(参考:使用XMLBuddy在Eclipse中开辟XML),如许对照便利。文件内容以下:
<?xmlversion="1.0"encoding="GBK"?>
<!DOCTYPEhibernate-mapping
PUBLIC"-//Hibernate/HibernateMappingDTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>
<classname="javamxj.hibernate.User"table="UserTable">
<idname="id">
<generatorclass="assigned"/>
</id>
<propertyname="username"/>
<propertyname="password"/>
</class>
</hibernate-mapping>
  这个XML文件界说了对象属性映照到数据库表的干系,这里接纳了assigned(程序设置)体例天生主键。固然还可使用别的的体例来发生主键,前面的文章就接纳了别的的体例发生主键。<property>标签用于界说Java对象的属性,这里只界说了最复杂的体例,由Hibernate主动判别Java对象属性与数据库表称号对应干系。在<property/>标签上的分外设定(像是notnull、sql-type等),则能够用于主动发生Java对象与数据库表的工具上。
  4.设置文件  Hibernate可使用XML或属性文件来举行设置,设置文件名默许为“hibernate.cfg.xml”(大概hibernate.properties)。

  在src目次下,新建一个hibernate.cfg.xml文件,内容以下:
<?xmlversion=1.0encoding=GBK?>
<!DOCTYPEhibernate-configuration
PUBLIC"-//Hibernate/HibernateConfigurationDTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory>
<!--是不是将运转期天生的SQL输入到日记以供调试-->
<propertyname="show_sql">true</property>

<!--SQL方言,这里设定的是MySQL-->
<propertyname="dialect">net.sf.hibernate.dialect.MySQLDialect</property>

<!--JDBC驱动程序-->
<propertyname="connection.driver_class">com.mysql.jdbc.Driver</property>

<!--JDBCURL,"?useUnicode=true&characterEncoding=GBK"暗示利用GBK举行编码-->
<propertyname="connection.url">
jdbc:mysql://localhost:3306/HibernateTest?useUnicode=true&characterEncoding=GBK
</property>

<!--数据库用户名-->
<propertyname="connection.username">root</property>

<!--数据库暗码-->
<propertyname="connection.password">javamxj</property>
<!--指定User的映照文件-->
<mappingresource="javamxj/hibernate/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>  注重:这里利用的是“jdbc:mysql://localhost:3306/HibernateTest?useUnicod...”中的HibernateTest数据库,你必要在MySql中创建这个数据库。  5.测试程序  在javamxj.hibernate包下,新建一个Test类,内容以下:
/*
*复杂测试一下User类
*创立日期2005-3-31
*@authorjavamxj(分享java康乐)
*/
packagejavamxj.hibernate;
importnet.sf.hibernate.*;
importnet.sf.hibernate.cfg.*;
publicclassTest{
publicstaticvoidmain(String[]args){
try{
SessionFactorysf=newConfiguration().configure()
.buildSessionFactory();
Sessionsession=sf.openSession();
Transactiontx=session.beginTransaction();
Useruser=newUser();
user.setUsername("Blog");
user.setPassword("分享java康乐");
session.save(user);
tx.commit();
session.close();
}catch(HibernateExceptione){
e.printStackTrace();
}
}
}
  这里复杂说说一下游程,起首初始化Configuration,加载Hibernate的设置信息,然后Configuration获得SessionFactory对象,并由它来开启一个Session,它代表对象与表格的一次会话操纵,而Transaction则暗示一组会话操纵,我们只必要间接操纵User对象,并举行Session与Transaction的相干操纵,Hibernate就会主动完成对数据库的操纵。  6.设置数据库  在运转测试程序之前,还必需先设置好数据库。  在MySQL中创建一个HibernateTest数据库,并创建UserTable表,SQL语句以下:CREATETABLEusertable(
IDint(6)NOTNULLauto_increment,
usernamevarchar(24)NOTNULLdefault,
passwordvarchar(24)NOTNULLdefault,
PRIMARYKEY(ID)
);  这里,HibernateTest与hibernate.cfg.xml设置文件中的HibernateTest绝对应,UserTable与hbm映照文件中的UserTable绝对应。  7.运转程序  右击Test.java,点击运转,能够看到把持台输入一系列信息,最初一条输入语句应当是:Hibernate:insertintoUserTable(username,password,id)values(?,?,?)  鄙人篇文章中会先容怎样使用log4j来把持输入信息。  同时,在数据库中能够看到,数据已增加进内外了:


  小结:

  Hibernate道理方面我不想多说,实践上晓得也未几,何况这方面的材料良多,好比Hibernate自己自带的中文文档、夏昕编写的《Hibernate开辟指南》、良葛格编写的“Hibernate进门”等都长短常不错的,如今关于Hibetnate的书本也多了起来。

  我所作的事情就是要使老手能尽快上手Hibernate,实际方面我不想过量胶葛,只管以实例措辞。我想,与其平空说一个手艺多很多多少好,倒不如给我一个能够上手的实例操纵一下。好了,未几说空话了。

主要缺点就是:速度比较慢,没有C和C++快

海妖 发表于 2015-1-24 23:47:37

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

飘灵儿 发表于 2015-1-26 08:26:04

是一种语言,用以产生「小应用程序(Applet(s))

灵魂腐蚀 发表于 2015-1-30 20:16:26

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

透明 发表于 2015-2-1 22:58:50

是一种为 Internet发展的计算机语言

兰色精灵 发表于 2015-2-7 15:47:31

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

爱飞 发表于 2015-2-16 21:38:22

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

小女巫 发表于 2015-3-7 10:25:48

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

仓酷云 发表于 2015-3-8 11:41:28

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

冷月葬花魂 发表于 2015-3-10 12:44:22

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

再见西城 发表于 2015-3-17 07:08:42

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

只想知道 发表于 2015-3-24 00:42:02

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
页: [1]
查看完整版本: JAVA网站制作之Eclipse疾速上手Hibernate之进门实例