MyEclipse下Spring+Hibernate整合
目前,SSH(Struts+Spring+Hibernate)是Web开发的一种常用框架组合,Struts实现了MVC,Hibernate实现了关系对象映射,Spring实现了基于Bean的配置管理。本文使用 MyEclipse实现Spring+Hibernate的整合。
软件和框架使用版本:
- MyEclipse:8.0
- Spring:2.5
- Hibernate:3.2
- MySQL:5.1
创建数据库连接
- 首先在MyEclipse下切换Perspective至MyEclipse Database Explorer,在左侧DB Browser中右键点击,在对话框中选择“New”,创建数据库连接MySQL。数据库连接的配置如图1所示,需要填写URL、用户名、密码、驱动等信息。

- 数据库连接配置成功后,左侧DB Browser中会显示该连接,右键点击该连接,在对话框中选择“Open connection”,显示数据库中的详细信息,如图2所示。在数据库中已有一user表,在下面将使用Spring+Hibernate实现对该表的操作。

新建Web工程,并配置Spring
- 切换Perspective至MyEclipse Java Enterprise,新建Web工程ssh,如图3所示。如果在随后的工作中还需整合Struts 2,则J2EE Specification Level应选择Java EE 5.0,此处暂选用默认配置J2EE 1.4。

- 右键点击该工程,在对话框中选择“MyEclipse->Add Spring Capabilities…”,添加Spring,并进行相关配置,如图4所示,采用默认配置即可。

配置Hibernate
- 右键点击该工程,在对话框中选择“MyEclipse->Add Hibernate Capabilities…”,添加Hibernate,并进行相关配置,如图5、图6、图7、图8、图9所示。
由于需要使用Spring配置Hibernate,因此选中所有的Library。
- 选择Spring的配置文件applicationContext.xml进行配置。

- 选择已有的Spring配置文件,并使用Spring配置Hibernate中的SessionFactory,SessionFactory的bean id为sessionFactory。

- 配置数据源DataSource的bean id为dataSource,且其配置信息采用数据库连接MySQL。

- 不另写SessionFactory类,而采用Spring为Hibernate已设计的SessionFactory类。

数据库逆向工程
- 切换Perspective至MyEclipse Hibernate,右键点击数据表user,在对话框中选择“Hibernate Reverse Engineering…”,对user表的关系对象映射进行配置,如图10所示,其中第一个红框用于选择Java源文件目录,第二个红框用于选择是否创建关系对象映射文件,以hbm.xml结尾,第三个红框用于选择是否创建数据对象类,第四个红框用于选择是否创建数据访问对象类,均选择是,其他采用默认配置即可。

分析和测试
按上述步骤配置后就可以在工程中实现Spring和Hibernate的整合,以及user表的关系对象映射,工程目录如图11所示,其中src目录下的applicationContext.xml是Spring和Hibernate的核心配置文件,pojo包中的三个文件是与user表对应的数据对象类User.java、数据访问对象类UserDAO.java、关系对象映射文件User.hbm.xml。
applicationContext.xml内容如下所示:
1 |
<beans |
其中,bean dataSource实现数据库连接配置,bean sessionFactory实现Hibernate的SessionFactory,并使用bean dataSource的连接配置,bean UserDAO实现User数据对象访问,并使用bean sessionFactory创建会话。
User.java代码部分如下:
1 |
public class implements java.io.Serializable {
private Integer id;
|
其中,对User对象类进行了定义,包括与user表字段对应的属性值、构造函数、Get/Set函数等。
UserDAO.java代码部分如下所示:
1 |
public class UserDAO extends HibernateDaoSupport {
|
该类继承了Spring的HibernateDaoSupport类,调用对象实例本身的getHibernateTemplate获取HibernateTemplate对象,进而调用其save、delete等方法实现数据的增加、删改等操作。
User.hbm.xml内容如下所示:
1 |
<?xml version="1.0" encoding="utf-8"?> |
其中定义了user表和User类的关系对象映射。
在UserDAO中编写一个主函数实现向user表中写入数据,如下所示:
1 |
public static void main(String args[]) |
执行后,查看user表,如果该表已新增一条记录,说明配置成功。
MyEclipse下Spring+Hibernate整合的更多相关文章
- spring+hibernate整合:报错org.hibernate.HibernateException: No Session found for current thread
spring+hibernate整合:报错信息如下 org.hibernate.HibernateException: No Session found for current thread at o ...
- SpringMVC+Spring+Hibernate整合开发
最近突然想认真研究下java web常用框架,虽然现在一直在用,但实现的整体流程不是很了解,就在网上搜索资料,尝试自己搭建,以下是自己的搭建及测试过程. 一.准备工作: 1/安装并配置java运行环境 ...
- 笔记58 Spring+Hibernate整合(一)
Spring+Hibernate整合 一.整合思路 使DAO继承HibernateTemplate这个类 HibernateTemplate这个类提供了setSessionFactory()方法用于注 ...
- Struts2+Spring+Hibernate整合开发(Maven多模块搭建)
Struts2+Spring+Hibernate整合开发(Maven多模块搭建) 0.项目结构 Struts2:web层 Spring:对象的容器 Hibernate:数据库持久化操作 1.父模块导入 ...
- Spring+Hibernate整合配置 --- 比较完整的spring、hibernate 配置
Spring+Hibernate整合配置 分类: J2EE2010-11-25 17:21 16667人阅读 评论(1) 收藏 举报 springhibernateclassactionservlet ...
- Struts+Spring+Hibernate整合入门详解
Java 5.0 Struts 2.0.9 Spring 2.0.6 Hibernate 3.2.4 作者: Liu Liu 转载请注明出处 基本概念和典型实用例子. 一.基本概念 St ...
- Spring、Struts2+Spring+Hibernate整合步骤
所使用的Jar包: Hibernate: Spring(使用MyEclipse自动导入框架功能) Struts2: 注解包和MySql驱动包: 1.配置Hibernate和Spring: <be ...
- Struts+Spring+Hibernate整合
这段笔记三两年前写的,一直因为一些琐事,或者搞忘记了,没有发.今天偶然翻出了它,就和大家一起分享下吧. 1.导入jar包 Struts的jar包: Spring的jar包: Hibernate的jar ...
- 【Spring学习笔记-1】Myeclipse下Spring环境搭建
*.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:# ...
随机推荐
- goweb-处理静态资源
处理静态文件 对于 HTML 页面中的 css 以及 js 等静态文件,需要使用使用 net/http 包下的以下 方法来处理 1) StripPrefix 函数 2) FileServer 函数 3 ...
- 14 微服务电商【黑马乐优商城】:day01-springboot(Thymeleaf快速入门)
本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) :day01-springboot(Thyme ...
- 传统方式接口测试返回值json验证
1.返回值 2.验证方式: public void check200_N(Object obj, int ret_num) throws UnsupportedEncodingException, E ...
- Python基础——类new方法与单例模式
介绍: new方法是类中魔术方法之一,他的作用是给类实例化开辟一个内存地址,并返回一个实例化,再由__init__对这个实例进行初始化,故它的执行肯定就是在初始化方法__init__之前了.new方法 ...
- USACO 2009 Open 干草塔 Tower of Hay(贪心+单调队列优化DP)
https://ac.nowcoder.com/acm/contest/1072/B Description 为了调整电灯亮度,贝西要用干草包堆出一座塔,然后爬到牛棚顶去把灯泡换掉.干草包会从传送带上 ...
- 用windows下的Anaconda搭建Django虚拟环境
Django 是一个Python定制框架,可用于简便.快速的开发数据库驱动的web站点. 要使用Django,首先要建立一个虚拟工作环境. 那么,为什么要搭建虚拟环境呢?我们来看以下的开发场景: 假设 ...
- 概率DP——BZOJ4008 [HNOI2015]亚瑟王
[HNOI2015]亚瑟王 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑.他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 ...
- 通俗易懂JSONP讲解
原文地址:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html JSON的格式或者叫规则: JSON能够 ...
- python学习笔记(5)数据类型-字典
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: d ...
- 错误修改.bashrc文件导致所有命令无法使用解决方法
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin