仓酷云

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

[学习教程] JAVA网站制作之Eclipse疾速上手Hibernate之进门实例

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

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

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

x
为什么外国人还要写那些框架进行代码封装,他们不就是为了别人使用时可以更简单么!如果要达到一个企业级项目的不用框架是很难的。小一些的项目还行,大的光是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对象与数据库表的工具上。
  1. [b]  4.设置文件[/b]
复制代码
  1.   Hibernate可使用XML或属性文件来举行设置,设置文件名默许为“hibernate.cfg.xml”(大概hibernate.properties)。
  2.   在src目次下,新建一个hibernate.cfg.xml文件,内容以下:
  3. <?xmlversion=1.0encoding=GBK?>
  4. <!DOCTYPEhibernate-configuration
  5. PUBLIC"-//Hibernate/HibernateConfigurationDTD//EN"
  6. "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
  7. <hibernate-configuration>
  8. <session-factory>
  9. <!--是不是将运转期天生的SQL输入到日记以供调试-->
  10. <propertyname="show_sql">true</property>
  11. <!--SQL方言,这里设定的是MySQL-->
  12. <propertyname="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
  13. <!--JDBC驱动程序-->
  14. <propertyname="connection.driver_class">com.mysql.jdbc.Driver</property>
  15. <!--JDBCURL,"?useUnicode=true&characterEncoding=GBK"暗示利用GBK举行编码-->
  16. <propertyname="connection.url">
  17. jdbc:mysql://localhost:3306/HibernateTest?useUnicode=true&characterEncoding=GBK
  18. </property>
  19. <!--数据库用户名-->
  20. <propertyname="connection.username">root</property>
  21. <!--数据库暗码-->
  22. <propertyname="connection.password">javamxj</property>
  23. <!--指定User的映照文件-->
  24. <mappingresource="javamxj/hibernate/User.hbm.xml"/>
  25. </session-factory>
  26. </hibernate-configuration>
复制代码
  1.   注重:这里利用的是“jdbc:mysql://localhost:3306/[b]HibernateTest[/b]?useUnicod...”中的[b]HibernateTest[/b]数据库,你必要在MySql中创建这个数据库。
复制代码
  1. [b]  5.测试程序[/b]
复制代码
  1.   在[b]javamxj.hibernate[/b]包下,新建一个Test类,内容以下:
  2. /*
  3. *复杂测试一下User类
  4. *创立日期2005-3-31
  5. *@authorjavamxj(分享java康乐)
  6. */
  7. packagejavamxj.hibernate;
  8. importnet.sf.hibernate.*;
  9. importnet.sf.hibernate.cfg.*;
  10. publicclassTest{
  11. publicstaticvoidmain(String[]args){
  12. try{
  13. SessionFactorysf=newConfiguration().configure()
  14. .buildSessionFactory();
  15. Sessionsession=sf.openSession();
  16. Transactiontx=session.beginTransaction();
  17. Useruser=newUser();
  18. user.setUsername("Blog");
  19. user.setPassword("分享java康乐");
  20. session.save(user);
  21. tx.commit();
  22. session.close();
  23. }catch(HibernateExceptione){
  24. e.printStackTrace();
  25. }
  26. }
  27. }
  28.   这里复杂说说一下游程,起首初始化Configuration,加载Hibernate的设置信息,然后Configuration获得SessionFactory对象,并由它来开启一个Session,它代表对象与表格的一次会话操纵,而Transaction则暗示一组会话操纵,我们只必要间接操纵User对象,并举行Session与Transaction的相干操纵,Hibernate就会主动完成对数据库的操纵。
复制代码
  1. [b]  6.设置数据库[/b]
复制代码
  1. [/code][code]  在运转测试程序之前,还必需先设置好数据库。
复制代码
  1.   在MySQL中创建一个HibernateTest数据库,并创建UserTable表,SQL语句以下:
复制代码
  1. CREATETABLEusertable(
  2. IDint(6)NOTNULLauto_increment,
  3. usernamevarchar(24)NOTNULLdefault,
  4. passwordvarchar(24)NOTNULLdefault,
  5. PRIMARYKEY(ID)
  6. );
复制代码
  1.   这里,HibernateTest与hibernate.cfg.xml设置文件中的HibernateTest绝对应,UserTable与hbm映照文件中的UserTable绝对应。
复制代码
  1. [b]  7.运转程序[/b]
复制代码
  1.   右击Test.java,点击运转,能够看到把持台输入一系列信息,最初一条输入语句应当是:
复制代码
  1. [b]Hibernate:insertintoUserTable(username,password,id)values(?,?,?)[/b]
复制代码
  1.   鄙人篇文章中会先容怎样使用log4j来把持输入信息。
复制代码
  1.   同时,在数据库中能够看到,数据已增加进内外了:
复制代码



  小结:

  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的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
透明 该用户已被删除
5#
发表于 2015-2-1 22:58:50 | 只看该作者
是一种为 Internet发展的计算机语言
兰色精灵 该用户已被删除
6#
发表于 2015-2-7 15:47:31 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
爱飞 该用户已被删除
7#
发表于 2015-2-16 21:38:22 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
小女巫 该用户已被删除
8#
发表于 2015-3-7 10:25:48 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
9#
发表于 2015-3-8 11:41:28 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
冷月葬花魂 该用户已被删除
10#
 楼主| 发表于 2015-3-10 12:44:22 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
再见西城 该用户已被删除
11#
发表于 2015-3-17 07:08:42 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
只想知道 该用户已被删除
12#
发表于 2015-3-24 00:42:02 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-28 19:20

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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