Spring为应用程序提供一个容器, 为应用程序的管理带来了方便. 它与hibernate的结合, 形成一个完整的后台体系, 也是当今应用开发流行的做法. 奋斗了一个晚上, 终于把hibernate3与spring整合了起来, hibernate2.x和hibernate3与spring的结合稍有不同, 关键是引入的spring的包的不同, 下面我会标识出来.
Spring 的配置文件applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "spring" "../../../lib/spring-beans.dtd" > <beans default-autowire="no" default-dependency-check="none" default-lazy-init="false">
<!-- 配置数据源 注意: 用org.apache.commons.dbcp.BasicDataSource, 要引入 apache commons 的commons-collections-3.1.jar, commons-dbcp-1.2.1.jar, commons-pool-1.2.jar三个包 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>org.gjt.mm.mysql.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost/sparkcrm</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>1111</value> </property> </bean>
<!-- 配置sessionFactory, 注意这里引入的包的不同 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>com/sparkcrm/schema/entities/Lead.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean> <!-- 配置transactionManager, 注意这里引入的包的不同 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean>
<--事务代理在这里配置, 这里省略了 -->
<bean id="leadDAO" class="com.sparkcrm.schema.dao.LeadDao"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean>
</beans>
一个示例的hibernate的映射文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.sparkcrm.schema.entities"> <!-- 我在这里用了hibernate的动态模型(dynamic models) , 没用pojo--> <class entity-name="Lead" table="Lead"> <id name="id" column="id" type="string"> <generator class="uuid.hex"/> </id> <property name="companyName" type="string"/> <property name="topic" type="string"/> <property name="contactName" type="string"/> </class> </hibernate-mapping>
DAO代码:
import java.util.Map; /** * DAO接口 */ public interface IDAO {
String create(Map<String, Object> map); void update(Map<String, Object> map); Map<String, Object> delete(String id); boolean share(String id, String userId, int rights); boolean assign(String id, String userId); }
import java.util.Map;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.sparkcrm.schema.IDAO; import com.sparkcrm.schema.Schema; import com.sparkcrm.schema.metadata.Lead; /** *一个示例的DAO实现, 继承HibernateDaoSupport, 用spring带来的管理session等的便利 */ public class LeadDao extends HibernateDaoSupport implements IDAO {
public String create(Map<String, Object> map) { getHibernateTemplate().saveOrUpdate(Schema.LEAD, map); return (String) map.get(Lead.ID); }
public void update(Map<String, Object> map) { }
public Map<String, Object> delete(String id) { return null; }
public boolean share(String id, String userId, int rights) { return false; }
public boolean assign(String id, String userId) { return false; }
}
示意性的测试代码:
import java.sql.Timestamp; import java.util.Date; import java.util.HashMap; import java.util.Map;
import junit.framework.TestCase;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.sparkcrm.schema.IDAO;
public class testLeadDAO extends TestCase { ClassPathXmlApplicationContext ctx = null; public void setUp(){ ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); } public void testCreateLead(){ IDAO leadDao = (IDAO) ctx.getBean("leadDAO");
Map<String, Object> map = new HashMap<String, Object>(); map.put("companyName", "Spark Ltd."); map.put("topic", "This is a Good Lead!"); map.put("contactName", "abcd"); String id = leadDao.create(map); System.out.println(id); } }
|
相关推荐
"struts2-hibernate3-spring整合需要的全部jar包"正是为了解决这个问题,它包含了所有必要的库文件,使得开发者可以直接引入而无需担心版本冲突。 以下是这个整合所需的一些关键jar包及其作用: 1. **Struts2框架*...
《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书》是一本深入探讨J2EE Web应用程序开发的专业书籍。J2EE,全称Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的...
将Hibernate与Spring整合可以充分利用两者的优点,提高开发效率并降低复杂性。 一、Hibernate概述 Hibernate是Java世界中领先的ORM框架之一,它允许开发者用Java对象来操作数据库记录,而无需编写SQL语句。通过配置...
Struts2、Hibernate和Spring是Java企业级应用中三大核心框架,它们的整合使用能够构建出高效、可维护性高的Web应用程序。本篇将深入剖析这三者如何协同工作,并提供实际范例应用。 首先,Struts2作为MVC(模型-视图...
精通J2EE——Eclipse+Struts+Hibernate+Spring整合应用案例 pdf电子书, 包含所有18个章节的完整版, 美中不足的是扫描质量不是很高,且是第一版的,不是目前最新的第二版! 请看清楚了再下,免得后悔! 共有两个部分-这...
《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例》是一本深入探讨J2EE企业级开发的权威书籍。它涵盖了Java企业级开发中的四个关键技术和框架:Eclipse集成开发环境(IDE)、Struts MVC框架、Hibernate...
《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例》是针对Java企业级开发的一个深度学习资源,涵盖了四个核心的技术领域:Eclipse集成开发环境、Struts MVC框架、Hibernate对象关系映射工具以及Spring...
《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例完整源码》是针对Java企业级开发的一份重要资源,它涵盖了四个关键的技术领域:Eclipse集成开发环境,Struts MVC框架,Hibernate对象关系映射工具,以及...
<精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例>源码和数据库。这是第1卷,请下载完7卷后解压。
《精通J2EE—Eclipse Struts Hibernate Spring 整合应用案例源代码1》这个压缩包文件主要包含了一个基于J2EE平台的、利用Eclipse开发工具,整合Struts、Hibernate和Spring框架的综合应用案例的源代码。这些源代码是...
在"Struts2+Hibernate+Spring整合开发深入剖析与范例应用06"中,我们可能涉及以下几个关键知识点: 1. **Struts2框架**:Struts2是一个强大的MVC框架,用于构建动态Web应用。它的核心是Action类,它处理HTTP请求并...
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
Struts2、Hibernate和Spring是Java企业级应用中常用的三个开源框架,它们分别负责MVC模式中的表现层、持久层和业务层管理。SSH(Struts2+Spring+Hibernate)框架整合是Java Web开发中常见的一种技术栈,能有效地提高...
这个"Struts2+Hibernate+Spring整合开发深入剖析与范例应用02"的学习资源,很可能是关于这三大框架集成使用的详细教程或案例集。02这个文件名可能代表系列的第二部分,意味着它可能在前一部分的基础上进一步深入讲解...
《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例》这本书主要涵盖了Java企业级开发中的四大核心技术:Eclipse集成开发环境、Struts框架、Hibernate持久化框架以及Spring框架。这些技术的组合通常被称为...
这个"springmvc spring hibernate整合Demo"旨在帮助初学者理解如何将这三个框架协同工作,实现一个完整的CRUD(创建、读取、更新、删除)应用。 Spring MVC 是 Spring 框架的一部分,专门用于构建Web应用程序。它...
### Struts2、Spring与Hibernate整合应用:学生成绩管理系统 #### 一、知识点概览 本项目聚焦于Struts2、Spring与Hibernate三大框架的整合应用,旨在构建一个高效、稳定、易于维护的学生成绩管理系统。通过整合这...
本系统——"学生信息管理系统",正是这种整合应用的一个实例,旨在提供一个完整的、易于扩展的管理平台,用于管理和操作学生信息。以下将对这一系统的整合技术、核心功能以及设计思想进行详述。 首先,Hibernate...
总的来说,"SpringMVC+Hibernate+Spring整合实例"提供了一个全面的学习平台,帮助开发者深入理解Java企业级应用的开发模式和最佳实践。通过这个实例,你可以提升自己的技能,为未来的项目开发打下坚实的基础。