`
zxsqi
  • 浏览: 28114 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring3.1.1与hibernate4.1.5集成

阅读更多

spring3.1.1与hibernate4.1.5集成。

 

1.新建一个项目。如普通的java项目; 数据库中建立对应的库与表。

 

2.把hibernate4.1.5的jar包添加到项目,主要的jar包是hibernate-release-4.1.5.Final\lib\required目录所有的jar,如:

antlr-2.7.7.jar

dom4j-1.6.1.jar

hibernate-commons-annotations-4.0.1.Final.jar

hibernate-core-4.1.5.Final.jar

hibernate-jpa-2.0-api-1.0.1.Final.jar

javassist-3.15.0-GA.jar

jboss-logging-3.1.0.GA.jar

jboss-transaction-api_1.1_spec-1.0.0.Final.jar

 

3.把spring3.1.1的jar包添加项目中,主要包括下列jar包:

 

org.springframework.aop-3.1.1.RELEASE.jar

org.springframework.asm-3.1.1.RELEASE.jar

org.springframework.aspects-3.1.1.RELEASE.jar

org.springframework.beans-3.1.1.RELEASE.jar

org.springframework.context-3.1.1.RELEASE.jar

org.springframework.context.support-3.1.1.RELEASE.jar

org.springframework.core-3.1.1.RELEASE.jar

org.springframework.expression-3.1.1.RELEASE.jar

org.springframework.instrument-3.1.1.RELEASE.jar

org.springframework.jdbc-3.1.1.RELEASE.jar

org.springframework.orm-3.1.1.RELEASE.jar

org.springframework.oxm-3.1.1.RELEASE.jar

org.springframework.test-3.1.1.RELEASE.jar

org.springframework.transaction-3.1.1.RELEASE.jar

org.springframework.web-3.1.1.RELEASE.jar

org.springframework.web.portlet-3.1.1.RELEASE.jar

org.springframework.web.servlet-3.1.1.RELEASE.jar

org.springframework.web.struts-3.1.1.RELEASE.jar

 

4.还需要第三方的信依懒包(需要自己手动下载),主要有下列jar包:

 

aopalliance.jar

aspectjweaver.jar
commons-dbcp-1.4.jar

commons-pool-1.6.jar

cglib-nodep-2.1_3.jar

commons-logging-1.1.1.jar

asm-3.3.1.jar

asm-commons-3.3.1.jar

asm-util-3.3.1.jar

 

5. 配置beans.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/context  
		http://www.springframework.org/schema/context/spring-context-3.0.xsd
		http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
		">

	<context:annotation-config />
	<context:component-scan base-package="com.buy" />



	<bean id="userDaoImpl" class="com.buy.user.UserDAOImpl">
		<!-- <property name="dataSource" ref="dataSource"></property> -->
	</bean>
	<bean id="useservice" class="com.buy.user.UserService">
		<property name="userDAO" ref="userDaoImpl" />
	</bean>


	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver">
		</property>
		<property name="url" value="jdbc:mysql://localhost:3306/buy360">
		</property>
		<property name="username" value="root"></property>
		<property name="password" value="root"></property>
	</bean>


	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="annotatedClasses">
			<list>
				<value>com.buy.user.Event</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<value>
				hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
				hibernate.show_sql=true
				hibernate.current_session_context_class=thread
			</value>
		</property>
		
	</bean>

	<bean id="transactionManager"
		class="org.springframework.orm.hibernate4.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>



<!-- 
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="ad*" propagation="REQUIRED"/>
		</tx:attributes>
	</tx:advice>
	
	
	 
	<aop:config expose-proxy="true">
		<aop:pointcut id="txPointcut" expression="execution(* com.buy.user..*.*(..))" />
		<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" />
	</aop:config>
	 --> 
</beans>

 

    其中     hibernate.current_session_context_class=thread  一定要添加上,不然会出现下列错误:

 

 

org.hibernate.HibernateException: No Session found for current thread
	at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97)
	at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:941)
	at com.buy.user.UserDAOImpl.add(UserDAOImpl.java:32)
	at com.buy.user.UserService.add(UserService.java:11)
	at com.buy.user.test.UsactionTest.testAdd(UsactionTest.java:39)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at junit.framework.TestCase.runTest(TestCase.java:168)
	at junit.framework.TestCase.runBare(TestCase.java:134)
	at junit.framework.TestResult$1.protect(TestResult.java:110)
	at junit.framework.TestResult.runProtected(TestResult.java:128)
	at junit.framework.TestResult.run(TestResult.java:113)
	at junit.framework.TestCase.run(TestCase.java:124)
	at junit.framework.TestSuite.runTest(TestSuite.java:243)
	at junit.framework.TestSuite.run(TestSuite.java:238)
	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
 

 

6. 源代码如下:

 

Event.java

 

 

/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
 * indicated by the @author tags or express copyright attribution
 * statements applied by the authors.  All third-party contributions are
 * distributed under license by Red Hat Inc.
 *
 * This copyrighted material is made available to anyone wishing to use, modify,
 * copy, or redistribute it subject to the terms and conditions of the GNU
 * Lesser General Public License, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
 * for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this distribution; if not, write to:
 * Free Software Foundation, Inc.
 * 51 Franklin Street, Fifth Floor
 * Boston, MA  02110-1301  USA
 */
package com.buy.user;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;

@Entity
@Table( name = "EVENTS" )
public class Event {
	private Long id;

	private String title;
	private Date date;

	public Event() {
		// this form used by Hibernate
	}

	public Event(String title, Date date) {
		// for application use, to create new events
		this.title = title;
		this.date = date;
	}

	@Id
	@GeneratedValue(generator="increment")
	@GenericGenerator(name="increment", strategy = "increment")
	public Long getId() {
		return id;
	}

	private void setId(Long id) {
		this.id = id;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "EVENT_DATE")
	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}
}

 

 

 

UserDAO.java

 

 

package com.buy.user;

public interface UserDAO {

	public void add(Event user);
	
	public void update(Event user);
}
 

 

 

UserDAOImpl.java

 

 

package com.buy.user;

import javax.annotation.Resource;

import org.hibernate.Session;
import org.hibernate.SessionFactory;


public class UserDAOImpl implements UserDAO {

	

	private SessionFactory sessionFacotry;
	
	public SessionFactory getSessionFacotry() {
		return sessionFacotry;
	}

	@Resource
	public void setSessionFacotry(SessionFactory sessionFacotry) {
		this.sessionFacotry = sessionFacotry;
	}

	@Override
	public void add(Event e) {
		// TODO Auto-generated method stub
		
		

		System.out.println(sessionFacotry);
		
		Session session = sessionFacotry.getCurrentSession();

		session.beginTransaction();
		session.save(e);
		session.getTransaction().commit();
		
		
		System.out.println("this is my test spring");
		
	}

	@Override
	public void update(Event e) {
		// TODO Auto-generated method stub

	}

}
 

 

  在集成spring3.1.1与hibernate4.1.5的过程中,遇到好多错误,欢迎大家一起来讨论学习。

 

 

8
9
分享到:
评论
1 楼 peak 2012-07-25  
确实是很多错误,很多以前写的功能都不能用了

相关推荐

    SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结

    SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结 SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结

    struts2.3.14+spring3.1.1+hibernate4.1.0 jar包

    总的来说,Struts2.3.14、Spring3.1.1和Hibernate4.1.0的集成为Java开发者提供了一个功能强大、灵活的开发工具集,能够帮助他们快速构建稳定、高效的企业级Web应用。理解并熟练掌握SSH框架的使用,对于提升Java...

    Struts2.3.4 + Spring3.1.1 + Hibernate4.1.0集成

    总之,Struts2.3.4 + Spring3.1.1 + Hibernate4.1.0的集成为Java Web应用提供了一个强大而灵活的基础架构,使得开发者可以专注于业务逻辑,而不是底层技术细节。通过深入理解这三个框架及其相互作用,开发者可以构建...

    SpringMVC + spring3.1.1 + hibernate4.1.0

    SpringMVC + Spring3.1.1 + Hibernate4.1.0 是一个经典的Java Web开发技术栈,用于构建高效、可扩展的企业级应用程序。在这个组合中,SpringMVC作为前端控制器处理HTTP请求,Spring框架提供了服务层管理和依赖注入,...

    struts-2.3.1+spring3.1.1+hibernate3.6.9整合&配置文件

    可以使用Spring的HibernateTemplate或SessionFactoryBean来集成Hibernate。 5. **整合**:通过Spring的`struts-plugin.xml`配置,使Struts 2的动作类能够从Spring容器中获取bean。这样,Action类就可以直接使用由...

    struts2.3.7+spring3.1.1+hibernate4.1.6

    这个压缩包"struts2.3.7+spring3.1.1+hibernate4.1.6"提供了这三个框架的特定版本,适用于构建基于Java的企业级Web应用程序。 **Struts2** 是一个用于构建MVC(Model-View-Controller)架构的开源框架,它是Apache...

    struts2.2.3+spring3.1.1+hibernate4.0整合

    总的来说,Struts2.2.3+Spring3.1.1+Hibernate4.0的整合涉及了Web应用开发中的多个层面,包括MVC架构设计、依赖注入、面向切面编程和持久化管理。理解并掌握这些知识点,对于提升Java EE项目的开发效率和质量至关...

    整合SSH_Struts2.3.4.1+Spring3.1.1+Hibernate4.1.6

    压缩包中包含的"整合SSH_Struts2.3.4.1+Spring3.1.1+Hibernate4.1.6+mysql.doc"文档很可能是详细的操作指南,包括每一步的配置细节、代码示例和常见问题解答。而"SSH.rar"文件则包含了整个项目的源码,包括Maven或...

    spring-3.1.1源码和架包

    5. **数据访问增强**:加强了对JPA、Hibernate和MyBatis等持久层框架的集成,简化了数据访问层的开发。 6. **Web MVC增强**:改进了MVC模块,支持异步处理和更好的URL路径映射。 通过研究这些源码和文档,开发者...

    spring3.1.1最新jar包

    spring3.1.1最新jar包

    maven之spring3.1.1+mybatis3.1.1整合

    以前用习惯了Hibernate, 开始接触Mybatis,同样是ORM, MyBatis确实很轻巧,正好也可以自己练练SQL,整合了maven版的spring3.1.1 + mybatis3.1.1,希望对你有帮助。

    Spring3.1.1

    - Spring3.1.1集成了更多的模板引擎,如FreeMarker、Thymeleaf等,使视图层的开发更加便捷。 7. **Spring Expression Language (SpEL)**: - SpEL是Spring框架中的表达式语言,3.1.1版本进一步强化了它的功能,使...

    spring3.1.1+struts2.3.1+hibernate3.3.2

    在与Struts2和Hibernate集成时,Spring可以作为一个中央调度器,管理和协调其他两个框架的行为。 Struts2.3.1是Struts框架的一个经典版本,它在处理Web应用程序的请求和响应方面表现出色。Struts2的核心是Action类...

    mongodb + spring3.1.1增删改查

    综上所述,MongoDB与Spring 3.1.1的集成使得在Java环境中处理NoSQL数据变得简单高效。通过Spring Data MongoDB,你可以轻松地进行数据操作,同时利用Spring的强大功能,如依赖注入和事务管理,以构建稳定、可扩展的...

    spring3.1.1的所有的jar包

    5. **数据访问集成**:Spring支持多种数据访问技术,如JDBC、ORM(Hibernate、MyBatis等),并提供了模板类和DAO支持,简化了数据操作。在Spring MVC中,通常使用Spring JDBC和ORM框架来处理数据库交互。 6. **...

    spring3.1.1 jar

    3. **数据访问集成(Data Access Integration)**:Spring 3.1.1提供了对各种数据访问技术的支持,如JDBC、Hibernate、JPA等。`@Transactional`注解的改进使得事务管理更加方便。 4. **AOP增强**:在3.1.1版本中,...

    最新struts2.3.1.2_+spring3.1.1_+hibernate4.1.2整合完整版

    之前做android开发,现在搞一下java web的东西,发现hibernate都升到4了,整合一下三个框架,基于最新版的struts2.3.1.2_spring3.1.1_hibernate4.1.2进行整合的,网上看了很多别人的整合,好像多多少少都有点问题,...

    spring3.1.1常用jar包

    Spring AOP与Spring Core紧密集成,可以在不引入额外框架的情况下实现面向切面的编程。 4. **Spring Context**:上下文模块构建在Core和Beans之上,提供了更丰富的容器功能,包括事件传播、国际化、资源加载以及对...

Global site tag (gtag.js) - Google Analytics