`
liuxinglanyue
  • 浏览: 565382 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MyEclipse Spring Hibernate整合开发

阅读更多

    MyEclipse Hibernate Spring整合开发是如何进行呢?让我们开始讲解吧:

    MyEclipse Spring Hibernate整合一、开发环境

    MyEclipse6.01GA,MySQL。

    MyEclipse Spring Hibernate整合二、表结构

  1.    CREATE TABLE `user` (  
  2.   `id` int(10) unsigned NOT NULL auto_increment,  
  3.   `username` varchar(64) NOT NULL,  
  4.   `passwordvarchar(64) NOT NULL,  
  5.   `first_name` varchar(128) NOT NULL,  
  6.   `last_name` varchar(128) NOT NULL,  
  7.   `date_created` bigint(20) unsigned NOT NULL,  
  8.   PRIMARY KEY  (`id`)  
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

MyEclipse Spring Hibernate整合三、具体步骤:

1、在MyEclipse中建立一个“java project”,工程名为:HibernateSpringProject,这个程序用java应用程序就可以实现。

2、右键点击工程文件,然后选择MyEclipse-﹥Add Spring Capabilities...

第一步选择需要加载的包,如下图所示:

MyEclipse Spring Hibernate整合1 

MyEclipse Spring Hibernate整合图1

其余的选项默认,点击 “下一步”,提示是否建立Spring配置文件,选择默认,然后直接点击“finish”。

3、右键点击工程文件,然后选择MyEclipse-﹥Add Hibernate Capabilities...

第一步选择默认,点击“下一步”。

第二步提示你是用Hibernate的配置文件还是用Spring的配置文件进行SessionFactory的配置,选择使用Spring来对Hibernate进行管理,这样最后生成的工程里就不包含hibernate.cfg.xml了,好处是在一个地方就可以对Hibernate进行管理了。

第三步提示你是创建一个新的hibernate配置文件还是使用已有的配置文件,由于我们刚才已经生成了Spring配置文件,并且要在其中进行hibernate的配置,所以选择复选框“Existing Spring configuration file”,选择该项后,下方的“Spring Config:”后的下拉列表框自动填入了刚才生成的Spring配置文件路径。这时候有个错误,要求你填写SessionFactory ID,这个id就是我们要为hibernate注入的一个类的ID,随便取一个名字,例如“sessionFactory”。点击“下一步”。

第四步要求选择数据库连接信息,这个步骤可以参照网上的信息进行配置,很简单。这里需要注意一点,“bean id”处填写一个数据源的名称,例如“datasource”,下面的单选按钮选择“Use Jdbc Driver”就行了,此处没有用jndi。在“DB Driver”处选择配置好的数据库连接信息,其他信息自动填入余下的输入框中,点击下一步。

第四步提示是否创建“SessionFactory”类,由于本程序用Spring替我们注入sessionfactory,此处可以不用创建,勾掉复选框。然后直接点击“finish”。

4、建立三个包,分别是com.simon.dao,com.simon.model,com.simon.service。这写包的定义可以参考我的另一篇文章ssh开发时目录的建议结构。

5、打开MyEclipse的database exployer perspective,右键选择user表,选择Hibernate reverse engineering

按照下图所示进行设置

MyEclipse Spring Hibernate整合2 

MyEclipse Spring Hibernate整合图2

点击下一步,在“ID generator”中选择native,如果愿意可以直接点击finish

这时再观察applicationContext.xml文件,发现在sessionFactory定义中增加了如下代码:

  1. ﹤property name="mappingResources"﹥  
  2.  ﹤list﹥  
  3.   ﹤value﹥com/simon/model/User.hbm.xml﹤/value﹥  
  4.   ﹤/list﹥  
  5. ﹤/property﹥ 

此时在观察类结构:

MyEclipse Spring Hibernate整合3 

MyEclipse Spring Hibernate整合图3

在model包下生成了三个类和一个映射文件。AbstractUser是User的抽象类,在此需要说明一点的是,在标准的Spring应用中UserDAO应该是一个接口,而不是一个具体的类,而MyEclipse将数据库操作方法直接写到了UserDAO中,另外,按照标准写法,DAO实现类要实现DAO接口,并且要包括SessionFactory的变量声明,但是生成的代码中UserDAO直接实现了HibernateDaoSupport类,需要特别注意。所以,如果你需要标准写法,可以将UserDAO中的方法提取出来,只保留方法声明,然后再间一个impl目录,将该DAO的实现类放在该impl中,按照管理将该类命名为UserDAOImpl,另外一点最好将DAO和它的实现类移到dao包中,结构和model包中的相同。

在这个例子中暂且将生成的文件都放到model中。

此时我们可以写一个测试程序将一条记录插入到user表中,当然这个测试程序并没有用事务控制,后面我们还会介绍,测试程序如下:

  1. import org.springframework.context.ApplicationContext;  
  2. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  3. import com.simon.model.UserDAO;  
  4. import com.simon.model.User;  
  5. public class TestWithoutTx {  
  6.  
  7.  /**  
  8.   * @param args  
  9.   */ 
  10.  public static void main(String[] args) {  
  11.   // TODO Auto-generated method stub  
  12.         User user=new User();  
  13.         user.setFirstName("first name");  
  14.         user.setLastName("last name");  
  15.         user.setUsername("user name");  
  16.         user.setPassword("password");  
  17.         user.setDateCreated(new Long(111111));  
  18.         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");  
  19.         UserDAO userdao=(UserDAO)context.getBean("UserDAO");  
  20.         userdao.save(user);   
  21.  }  

现在的问题是增加事务处理功能,跟我继续,这时候源程序不需要修改,只需要修改applicationContext.xml配置文件,首先增加事务管理器,因为事务管理器也需要使用数据库,所以需要引入sessionFactory

如下:

  1. ﹤bean id="myTransactionManager"  class="org.springframework.orm.hibernate3.HibernateTransactionManager"﹥  
  2. ﹤property name="sessionFactory"﹥  
  3. ﹤ref bean="sessionFactory" /﹥  
  4. ﹤/property﹥  
  5. ﹤/bean﹥  

继续增加如下配置信息:

  1. ﹤bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"﹥  
  2.   ﹤property name="proxyTargetClass"﹥  
  3.    ﹤value﹥true﹤/value﹥  
  4.   ﹤/property﹥  
  5.   ﹤property name="transactionManager"﹥  
  6.    ﹤ref bean="myTransactionManager" /﹥  
  7.   ﹤/property﹥  
  8.   ﹤property name="target"﹥  
  9.    ﹤ref local="UserDAO" /﹥  
  10.   ﹤/property﹥  
  11.   ﹤property name="transactionAttributes"﹥  
  12.    ﹤props﹥  
  13.     ﹤!-- 这里的方法签名可以精确到方法, 先懒惰一下全配置上 --﹥  
  14.     ﹤prop key="*"﹥PROPAGATION_REQUIRED﹤/prop﹥  
  15.    ﹤/props﹥  
  16.   ﹤/property﹥  
  17.  ﹤/bean﹥ 

注意以上红色部分:  注意这个属性,必须为 true, 使用CGLIB时才不用强制编写DAO接口,也就是由于MyEclipse并没有为我们生成DAO接口,而是生成了一个数据库实现类,为了使Spring不强迫我们必须定义一个DAO接口,只需要将这个proxyTargetClass属性定义为true,这点非常重要,程序出错很有可能和这个属性设置错误有关。

下面再写一个测试程序,和上面的测试程序基本相同,唯一不同是将上面的

UserDAO userdao=(UserDAO)context.getBean("userDAO");

换成

UserDAO userdao=(UserDAO)context.getBean("userDAOProxy");

执行,一切ok,数据正确的插入到数据库中。

MyEclipse Spring Hibernate整合开发就向你介绍到这里,那么你是不是对MyEclipse Spring Hibernate整合有了一些了解了呢?

分享到:
评论

相关推荐

    Spring集成Hibernate myeclipse 下

    在MyEclipse这样的集成开发环境中,集成Spring和Hibernate可以构建高效且易于维护的Java Web应用。 在"Spring集成Hibernate Myeclipse下"的场景中,我们首先需要配置MyEclipse环境,确保安装了Spring和Hibernate的...

    使用MyEclipse下整合Spring和Hibernate

    下面我们将详细探讨如何在MyEclipse环境下整合Spring和Hibernate。 1. 创建工程 首先,打开MyEclipse,选择"File" -> "New" -> "Dynamic Web Project",输入项目名称,选择JRE版本和Web容器,确保目标运行环境支持...

    Struts+Spring+Hibernate整合开发详解

    ### Struts+Spring+Hibernate整合开发详解 #### 一、项目背景与意义 在现代企业级应用开发中,为了提高软件质量和开发效率,通常会采用多种框架进行整合开发。Struts、Spring 和 Hibernate(通常简称 SSH)是三个...

    SSH整合源码(Struts+Spring+Hibernate整合用户注册例子)

    SSH整合,全称为Struts、Spring和Hibernate的集成,是一种常见的Java Web开发框架组合,用于构建高效、可维护的企业级应用程序。在这个例子中,我们看到的是一个基于SSH的用户注册功能的实现,使用的开发工具是...

    Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发

    标题 "Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发" 指向的是一个关于如何在集成开发环境Eclipse与MyEclipse中搭建Struts、Spring和Hibernate(SSH)框架的教程。SSH是Java Web开发中常用的一个...

    Flex4与Spring Hibernate整合的项目(直接MyEclipse下导入)

    Flex4与Spring Hibernate整合的项目是现代Web应用开发中的一个重要技术组合,旨在提供富客户端(Rich Internet Application,RIA)体验并实现后端服务的有效管理。这个项目直接在MyEclipse集成开发环境中导入,方便...

    struts2 spring hibernate 整合

    【SSH整合】指的是Struts2、Spring和Hibernate这三个开源框架的集成应用,它们在JavaEE企业级开发中占据着重要地位。Struts2是一个MVC框架,负责处理用户请求和控制应用程序流程;Spring是一个全面的后端解决方案,...

    springmvc-spring4.3-hibernate5框架整合

    标题 "springmvc-spring4.3-hibernate5框架整合" 暗示了这是一个关于集成Spring MVC、Spring 4.3和Hibernate 5的项目。这个项目可能是一个基础的Web应用开发环境,用于演示或教学如何将这三大流行Java框架协同工作。...

    struts+spring+hibernate整合

    通过以上步骤,一个基本的Struts、Spring和Hibernate整合的应用就搭建完成了。这个整合的关键在于Struts处理HTTP请求,Spring管理业务对象和依赖,而Hibernate则处理数据库操作。这样的架构可以实现松耦合,便于代码...

    Struts+Spring+Hibernate整合练习

    Struts+Spring+Hibernate 整合是Java Web开发中常用的一种技术栈,它结合了三个强大的框架,分别负责表现层(Struts)、业务逻辑层(Spring)和持久化层(Hibernate)。这种组合提供了完整的MVC架构,使得开发过程...

    myeclipse下整合spring和hibernate

    在 MyEclipse 下整合 Spring 和 Hibernate 是一个常见的开发任务,特别是在构建企业级 Java 应用程序时。Spring 是一个强大的轻量级框架,提供依赖注入、AOP(面向切面编程)等功能,而 Hibernate 是一个优秀的 ORM...

    MyEclipse图文整合SSH,Struts2+Spring+Hibernate整合过程详解

    以下是对Struts2、Spring、Hibernate整合的详细步骤,基于MyEclipse 8.5进行讲解: 1. **创建Web Project** 创建一个新的Web项目并不复杂,主要是定义项目的名称、位置以及Web应用的基本结构。 2. **建立Oracle...

    struts2 spring hibernate整合要点、注意点

    ### Struts2、Spring与Hibernate整合的关键点及注意事项 #### 一、概述 在Java Web开发领域,Struts2、Spring以及Hibernate是三个非常重要的框架。它们分别在MVC架构、依赖注入与业务逻辑管理、对象关系映射等方面...

    myeclipse6 整合struts spring hibernate

    根据提供的文档内容,本文将详细解析如何在MyEclipse...通过以上步骤,可以成功在MyEclipse 8.5环境中整合Struts、Spring和Hibernate框架,搭建起一个基础的SSH开发平台。这为后续开发复杂的应用程序奠定了坚实的基础。

    struts2和spring和Hibernate整合的jar包

    在整合Struts2、Spring和Hibernate时,我们通常会遇到一些包冲突的问题,尤其是在使用IDE如MyEclipse时。这可能是由于不同库版本之间的不兼容性,或者是重复引入了相同的类导致的。解决这些问题通常需要仔细检查项目...

    struts+spring+hibernate开发的+开发环境_eclipse3.1+MyEclipse4.1+tomcat5

    这个压缩包文件“struts+spring+hibernate开发的+开发环境_eclipse3.1+MyEclipse4.1+tomcat5”显然提供了一个基于这些技术的新闻发布系统的开发环境。下面我们将详细探讨这三大框架以及相关的开发工具和服务器。 **...

    MyEclipse下struts2、spring、hibernate整合

    在开发Java Web应用程序时,整合...通过以上步骤,你就完成了在MyEclipse环境下对Struts2、Spring和Hibernate的整合,可以开始进行功能开发了。记得在开发过程中持续优化和调整配置,以提高应用的性能和可维护性。

    使用myeclipse集成struts,hibernate,spring的一个示例程序

    【使用MyEclipse集成Struts、Hibernate、Spring的示例程序】 在Java企业级应用开发中,曾经EJB因其强大的功能和复杂的配置而备受关注。然而,随着Java开源项目的崛起,开发者有了更多轻量级的选择,例如Struts、...

    Myeclipse6.5+flex3+Blazeds+spring+hibernate完美整合源代码

    总结一下,"Myeclipse6.5+flex3+Blazeds+spring+hibernate完美整合源代码"代表了一个完整的、成熟的开发解决方案,它结合了现代Web开发的多个关键组件,提供了从前端用户界面到后端数据存储的全面支持。配合相应的...

    struts+spring+hibernate经典整合入门myeclipse实例

    Struts、Spring和Hibernate是Java开发中非常经典的三大框架,它们的整合应用,通常被称为SSH框架集成。这个实例是专为初学者设计的,旨在帮助理解如何在MyEclipse环境中进行SSH的集成与应用。 首先,Struts是MVC...

Global site tag (gtag.js) - Google Analytics