Eclipse快速上手Hibernate--1. 入门实例
发布时间:2018-08-20 16:25:04 所属栏目:电商 来源:站长网
导读:这篇文章首要谈谈Hibernate的入门开拓,例子很简朴,就是向数据表中添加用户名和暗码。我别离行使了三种要领,一种是直接写代码,写Hbm映射文件等;一种是通过Hbm映射文件来天生代码;一种是通过代码来天生Hbm映射文件。行使了一些自动化器材,XMLBuddy是
这篇文章首要谈谈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:javaHibernatelib目次; · 然后将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: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->构建路径 ● 更新xdoclet-hibernate-module 将XDoclet1.2.2中的xdoclet-hibernate-module-1.2.2.jar复制到JBossIDE-1.4.1-e30eclipsepluginsorg.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&characterEncoding=GBK" 暗示行使GBK举办编码 --> <property name="connection.url"> jdbc:mysql://localhost:3306/HibernateTest?useUnicode=true&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,理论方面我不想过多胶葛,只管以实例措辞。我想,与其凭空说一个技能多许多几何好,倒不如给我一个可以上手的实例操纵一下。好了,不多说空话了。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |