首页 - 数据库 - SQL Server

Eclipse快速上手Hibernate

发布时间: 2007-04-19 05:04    作者: 未知    来源: 未知    浏览:    评论

    这篇文章主要谈谈Hibernate的入门开发,例子很简单,就是向数据表中添加用户名和密码。我分别使用了三种方法,一种是直接写代码,写Hbm映射文件等;一种是通过Hbm映射文件来生成代码;一种是通过代码来生成Hbm映射文件。使用了一些自动化工具,XMLBuddy是用来编辑XML文件的,JBoss Eclipse IDE是用来编写Doclet标记的。这篇文章还谈到了一些Eclipse的使用技巧,比如建立“用户库”、“生成 Getter 和 Setter”等。    关于一些软件的使用技巧,我以前的文章都有提及,这里不多说了,必要时会提示一下。    一、下载、安装和配置 1. 所需软件● Ant 1.6.2        http://ant.apache.org    下载            http://mirror.apache.or.kr/ant/binaries/apache-ant-1.6.2-bin.zip ● Eclipse 3.0.1 及 语言包     参考:          http://blog.csdn.net/javamxj/archive/2004/10/11/131952.aspx ● XDoclet  1.2.2   http://xdoclet.sourceforge.net/xdoclet/    下载            http://prdownloads.sourceforge.net/xdoclet/xdoclet-bin-1.2.2.zip?download ● XMLBuddy          http://www.xmlbuddy.com/    下载             XMLBuddy 2.0.38     ● JBoss Eclipse IDE http://www.jboss.org/products/jbosside   看看说明,需要挑选与使用的eclipse相对应的版本,这里选择JBossIDE-1.4.1-e30.zip,这是它的镜像下载地址:   http://prdownloads.sourceforge.net/jboss/JBossIDE-1.4.1-e30.zip?download ● Hibernate         http://www.hibernate.org/     下载            Hibernate 2.1.8  http://prdownloads.sourceforge.net/hibernate/hibernate-2.1.8.zip?download    同时也要把 Hibernate Extensions 2.1.3 下载了,它包含一些工具类。     下载            http://prdownloads.sourceforge.net/hibernate/hibernate-extensions-2.1.3.zip?download  ●  MySQL 4.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%\bin;” 可以参考 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:\java\Hibernate\lib目录;  · 然后将hibernate-2.1目录下的lib子目录中的以下文件也复制到这个lib目录下:jta.jar  cglib-full-2.0.2.jar  commons-collections-2.1.1.jar  commons-logging-1.0.4.jar
commons-lang-1.0.1.jar 
dom4j-1.4.jar ehcache-0.9.jar log4j-1.2.8.jar odmg-3.0.jar  · 解压hibernate-extensions-2.1.3.zip,将其子目录tools中的hibernate-tools.jar和子目录lib中的velocity-1.3.1.jar、jdom.jar 也复制到D:\java\Hibernate\lib目录中  · 解压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:\java\Hibernate\lib目录中 · 最后将mysql-connector-java-3.0.16-ga-bin.jar文件复制到这个lib目录下。    这样,需要用到的库文件已经准备好了,如果认为这样比较麻烦,也可以将jar文件全部复制到lib目录。下面介绍如何在Eclipse中设置“用户库”。   ●  设置“用户库” ·窗口 ->首选项 ->Java ->构建路径 ->用户库, · 然后单击“添加JAR”    这样,一个用户库文件就做好了,如果要更新Eclipse时,可以将其先导出,然后再导入即可。这样做,对库文件便于管理,而且如果需要替换或者升级的话都比较方便。
 

 

●  设置“构建路径”

 

· 点击菜单“窗口”->首选项,以下都在“首选项”中配置:
   Java->构建路径      ● 更新xdoclet-hibernate-module    将XDoclet1.2.2中的xdoclet-hibernate-module-1.2.2.jar复制到JBossIDE-1.4.1-e30\eclipse\plugins\org.jboss.ide.eclipse.xdoclet.core_1.4.1目录中,并且删除其目录下的xdoclet-hibernate-module-1.2.1.jar文件,然后在eclipse界面中,窗口 ->首选项 ->JBoss-IDE ->XDoclet ->Code Assist:点击右侧的“Refresh XDoclet Data”栏,即可完成更新。如果要替换其它的模块,步骤与此类似。    二、项目实践     这里以一个简单的程序来示范Hibernate的配置与功能,在这个例子中的一些操作,实际上会使用一些自动化工具来完成,而不一定亲自手动操作设定,这边完全手动的原因,在于让你可以知道Hibernate的基本流程。     这是整个项目的结构: 好了,下面就开始创建项目了。    1. 创建项目 · 新建一个Java项目:HibernateBegin_1,注意选中“创建单独的源文件夹和输出文件夹”。点击“下一步”,切换到“库”,点击“添加库”,如下图: · 选择“用户库” · 勾选先前设置好的hibernate用户库。  2. 建立可持久化类  · 下面开始创建一个新类:User ;包名:javamxj.hibernate ; 然后添加三个变量(斜体),代码如下:
/* * 采用常规方法开发一个简单的Hibernate实例 * 创建日期 2005-3-31 * @author javamxj(分享java快乐) * @link Blog: htpp://javamxj.mblogger.cn * htpp://blog.csdn.net/javamxj/ */package javamxj.hibernate;public class User { private int id; private String username; private String password; }
· 点击工具栏上的“源代码(S)”,选择其中的“生成 Getter 和 Setter”(右击,在弹出菜单也可选择),如图: 点击“确定”后,生成如下代码:
/* * 采用常规方法开发一个简单的Hibernate实例 * 创建日期 2005-3-31 * @author javamxj(分享java快乐) * @link Blog: htpp://javamxj.mblogger.cn * htpp://blog.csdn.net/javamxj/ */package javamxj.hibernate;public class User { private int id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; }}
     好了,这个类完成了。它是一个普通的Java对象(Plain Old Java Objects,就是POJOs,有时候也称作Plain Ordinary Java Objects),表示一个数据集合。下面建立一个Hbm文件将这个类映射到数据库的表格上。  3. 映射文件    在javamxj.hibernate包下,新建一个名称为“User.hbm.xml”的文件,使用XMLBuddy编辑它(参考:利用XMLBuddy在Eclipse中开发XML ),这样比较方便。文件内容如下:
<?xml version="1.0" encoding="GBK"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="javamxj.hibernate.User" table="UserTable"> <id name="id"> <generator class="assigned" /> </id> <property name="username" /> <property name="password" /> </class></hibernate-mapping>
    这个XML文件定义了对象属性映射到数据库表的关系,这里采用了assigned(程序设置)方式生成主键。当然还可以使用其它的方式来产生主键,后面的文章就采用了其它的方式产生主键。    <property>标签用于定义Java对象的属性,这里只定义了最简单的方式,由Hibernate自动判断Java对象属性与数据库表名称对应关系。在<property/>标签上的额外设定(像是not null、sql-type等),则可以用于自动产生Java对象与数据库表的工具上。  4. 配置文件     Hibernate可以使用XML或属性文件来进行配置,配置文件名默认为“hibernate.cfg.xml”(或者hibernate.properties)。   在src目录下,新建一个hibernate.cfg.xml文件,内容如下:
<?xml version='1.0' encoding='GBK'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration> <session-factory> <!-- 是否将运行期生成的SQL输出到日志以供调试 --> <property name="show_sql">true</property> <!-- SQL方言,这里设定的是MySQL --> <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property> <!-- JDBC驱动程序 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- JDBC URL, "?useUnicode=true&amp;characterEncoding=GBK" 表示使用GBK进行编码 --> <property name="connection.url"> jdbc:mysql://localhost:3306/HibernateTest?useUnicode=true&amp;characterEncoding=GBK </property> <!-- 数据库用户名 --> <property name="connection.username">root</property> <!-- 数据库密码 --> <property name="connection.password">javamxj</property> <!-- 指定User的映射文件 --> <mapping resource="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 * @author javamxj(分享java快乐) */package javamxj.hibernate;import net.sf.hibernate.*;import net.sf.hibernate.cfg.*;public class Test { public static void main(String[] args) { try { SessionFactory sf = new Configuration().configure() .buildSessionFactory(); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); User user = new User(); user.setUsername("Blog"); user.setPassword("分享java快乐"); session.save(user); tx.commit(); session.close(); } catch (HibernateException e) { e.printStackTrace(); } }}
    这里简单说说一下流程,首先初始化Configuration,加载Hibernate的配置信息,然后Configuration取得SessionFactory对象,并由它来开启一个Session,它代表对象与表格的一次会话操作,而 Transaction则表示一组会话操作,我们只需要直接操作User对象,并进行Session与Transaction的相关操作, Hibernate就会自动完成对数据库的操作。  6. 配置数据库    在运行测试程序之前,还必须先设置好数据库。   在MySQL中建立一个HibernateTest数据库,并建立UserTable表,SQL语句如下: CREATE TABLE usertable (  ID int(6) NOT NULL auto_increment,  username varchar(24) NOT NULL default '',  password varchar(24) NOT NULL default '',  PRIMARY KEY  (ID)); CREATE TABLE usertable (  ID int(6) NOT NULL auto_increment,  username varchar(24) NOT NULL default '',  password varchar(24) NOT NULL default '',  PRIMARY KEY  (ID));      这里,HibernateTest与hibernate.cfg.xml配置文件中的HibernateTest相对应,UserTable与hbm映射文件中的UserTable相对应。  7. 运行程序    右击Test.java,点击运行,可以看到控制台输出一系列信息,最后一条输出语句应该是:Hibernate: insert into UserTable (username, password, id) values (?, ?, ?)   在下篇文章中会介绍如何利用log4j来控制输出信息。    同时,在数据库中可以看到,数据已经添加进表里了:  小结:     Hibernate原理方面我不想多说,实际上知道也不多,况且这方面的资料很多,比如Hibernate本身自带的中文文档、夏昕编写的《Hibernate开发指南》、良葛格编写的“Hibernate入门”等都是非常不错的,现在关于Hibetnate的书籍也多了起来。     我所作的工作就是要使新手能尽快上手Hibernate,理论方面我不想过多纠缠,尽量以实例说话。我想,与其凭空说一个技术多好多好,倒不如给我一个可以上手的实例操作一下。好了,不多说废话了。      小结:     Hibernate原理方面我不想多说,实际上知道也不多,况且这方面的资料很多,比如Hibernate本身自带的中文文档、夏昕编写的《Hibernate开发指南》、良葛格编写的“Hibernate入门”等都是非常不错的,现在关于Hibetnate的书籍也多了起来。     我所作的工作就是要使新手能尽快上手Hibernate,理论方面我不想过多纠缠,尽量以实例说话。我想,与其凭空说一个技术多好多好,倒不如给我一个可以上手的实例操作一下。好了,不多说废话了。     
Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多