您的位置:首页 > 编程语言 > Java开发

在Eclipse中创建简单Hibernate项目

2017-04-29 15:09 411 查看
最近学习JavaEE中有个练手项目要用Hibernate,在整个过程中出现了不少错误,网上查到的一些资料都不够齐全,所以我重新整理了一下步骤,我的设备是Mac,但是大致步骤相同。

有任何错误欢迎指正!

Hibernate项目开发流程:

搭建Hibernate环境

创建数据表

创建项目和持久化对象

创建配置文件Hibernate.cgf.xml

编写辅助工具类

编写Dao层并测试

1. 搭建Hibernate环境

在工具栏里找到Help-Eclipse Marketplace…



搜索JBoss Tool并完成安装,安装中的选项都默认,一直next和accept就可以了



顺利安装完毕后应该能创建Hibernate.cfg.xml文件。如图:



如果没有的话请重新安装JBoss工具,安装期间不要做任何多余操作,也不要断网,至此Hibernate环境安装完毕。

2.创建数据表

此处用到的是Mysql,其他数据库软件也可以,操作类似。



3.创建项目

1.创建项目



2.导入需要的Jar包

包括数据库的jar,Hibernate的jar(此项目还包括Struts2的jar)。这些包可以到官网下载也可以直接在csdn下载别人分享的!




4000
3.新建数据库连接(可跳过)

在工具栏中找到Window-Show View-Other



找到Data Source Explorer 选择OK



此时会显示如下画面(其中的New Mysql是我之前创建的):



新建



找到自己使用的数据库,输入名称(随便输入),Next



填写如图:



选择驱动页(此处出现Unable to local的报错,不管):



再点击JAR List,选择之前导入的数据库jar包:



此时返回Name/Type页,报错消失,点击OK:



点击Test Connection测试是否连接成功



成功后点击Finish(失败的话可能是信息填写错误,或者驱动没选对)



4.自动创建持久化对象

在工具栏找到Window-Perspective-Open Perspective-Other..



选择Hibernate



在界面左边出现Hibernate Config标签,可以看到刚才创建的项目



在工具栏找到如图选项:



新建一个configuration,将内容填写好,如果没有model包需要先创建。



setup一个hibernate.reveng.xml文件,选中所有表点击Include,然后Finish



Explorers标签页选择如下,点击run



成功后会在org.model包中自动生成如下内容:



4.创建配置文件Hibernate.cgf.xml

在项目名上右键,创建一个hibernate.cfg.xml文件



点击Get values from Connection,选择刚才新建的数据库连接(如果没有新建数据库连接,可以自行填写内容)



结果如图:



将信息填写完整,勾选Create a console configuartion,点击Finish:



在生成的hibernate.cfg.xml文件,增加mapping内容,对应org.model包下的hbm.xml文件(如果没修改,后期测试的时候会找不到映射)



5. 编写辅助工具类

新建org.factory包(名字可随意),在该包中新建HibernateUtil.java文件(名字可随意),内容如下:

package org.factory;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
//如果import部分报错,说明没有导入jar包

@SuppressWarnings("deprecation")
public class HibernateUtil {

private static SessionFactory sessionFactory;
// 创建线程局部变量threadLocal,用来保存Hibernate的Session
private static final ThreadLocal<Session> threadLocal=new ThreadLocal<Session>();
// 使用静态代码块初始化Hibernate
static
{
try
{
// 读取配置文件
Configuration cfg=new Configuration().configure();
// 创建SessionFactory
sessionFactory=cfg.buildSessionFactory();
}catch(Throwable ex)
{
throw new ExceptionInInitializerError(ex);
}
}
// 获得SessionFactory的实例
public static SessionFactory getsSessionFactory()
{
return sessionFactory;
}
// 获得ThreadLocal对象管理的Session
public static Session getsSession() throws HibernateException
{
Session session=(Session) threadLocal.get();
if(session==null||!session.isOpen())
{
if(sessionFactory==null)
{
rebuildSessionFactory();
}
// 通过SessionFactory对象创建Session对象
session=(sessionFactory!=null)?sessionFactory.openSession():null;
// 将Session对象保存到线程局部变量threadLocal中
threadLocal.set(session);
}
return session;
}
// 关闭Session实例
public static void closeSession()
{
// 从线程局部变量threadLocal中获取之前存入的Session实例
Session session=(Session)threadLocal.get();
threadLocal.set(null);
if(session!=null)
{
session.close();
}
}
// 重建SessionFactory
public static void rebuildSessionFactory()
{
Configuration configuration=new Configuration();
configuration.configure("/hibernate.cfg.xml");
sessionFactory=configuration.buildSessionFactory();
}
// 关闭缓存和连接池
public static void shutdown()
{
getsSessionFactory().close();
}
}


6. 编写DAO层并测试

此处就不详细写了。要根据自己设计的数据库内容编写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: