加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

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,理论方面我不想过多胶葛,只管以实例措辞。我想,与其凭空说一个技能多许多几何好,倒不如给我一个可以上手的实例操纵一下。好了,不多说空话了。     

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读