`
xiaoxuesheng
  • 浏览: 6938 次
社区版块
存档分类
最新评论

spring4集成hibernate4:annotation方式

    博客分类:
  • ssh
阅读更多

model:

package com.lzj.www.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

import org.hibernate.annotations.GenericGenerator;

@Entity
public class User {

	private Integer id;
	private String name;
	
	@Id
	@GenericGenerator(name="generator", strategy="increment")
	@GeneratedValue(generator="generator")
	public Integer getId() {
		return id;
	}
	
	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
}

 service:

 

 

package com.lzj.www.service.impl;


import org.springframework.orm.hibernate4.support.HibernateDaoSupport;

import com.lzj.www.model.User;
import com.lzj.www.service.UserService;


public class UserServiceImpl extends HibernateDaoSupport implements UserService{

	@Override
	public void addUser(User user) {
		this.getHibernateTemplate().save(user);
	}	
	
}

 xml文件:spring配置

 

 

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:cache="http://www.springframework.org/schema/cache" xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.0.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
       http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd">
    <!-- 引入properties文件 -->
    
    <context:property-placeholder location="classpath*:/appConfig.properties" />
    <!-- 定义数据库连接池数据源bean destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <!-- 设置JDBC驱动名称 -->
        <property name="driverClass" value="${driver}" />
        <!-- 设置JDBC连接URL -->
        <property name="jdbcUrl" value="${url}" />
        <!-- 设置数据库用户名 -->
        <property name="user" value="${user}" />
        <!-- 设置数据库密码 -->
        <property name="password" value="${password}" />
        <!-- 设置连接池初始值 -->
        <property name="initialPoolSize" value="5" />
    </bean>

    <!-- 配置sessionFactory -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <!-- 数据源 -->
        <property name="dataSource" ref="dataSource" />

        <!-- hibernate的相关属性配置 -->
        <property name="hibernateProperties">
            <value>
                <!-- 设置数据库方言 -->
                hibernate.dialect=org.hibernate.dialect.MySQLDialect
                <!-- 设置自动创建|更新|验证数据库表结构 -->
                hibernate.hbm2ddl.auto=update
                <!-- 是否在控制台显示sql -->
                hibernate.show_sql=true
                <!-- 是否格式化sql,优化显示 -->
                hibernate.format_sql=true
                <!-- 是否开启二级缓存 -->
                hibernate.cache.use_second_level_cache=false
                <!-- 是否开启查询缓存 -->
                hibernate.cache.use_query_cache=false
                <!-- 数据库批量查询最大数 -->
                hibernate.jdbc.fetch_size=50
                <!-- 数据库批量更新、添加、删除操作最大数 -->
                hibernate.jdbc.batch_size=50
                <!-- 是否自动提交事务 -->
                hibernate.connection.autocommit=true
                <!-- 指定hibernate在何时释放JDBC连接 -->
                hibernate.connection.release_mode=auto
                <!-- 创建session方式 hibernate4.x 的方式 -->
                hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
                <!-- javax.persistence.validation.mode默认情况下是auto的,就是说如果不设置的话它是会自动去你的classpath下面找一个bean-validation**包 
                    所以把它设置为none即可 -->
                javax.persistence.validation.mode=none
            </value>
        </property>
        <!-- 自动扫描实体对象 com.lzj.www.model包结构中存放实体类 -->
        <property name="packagesToScan" value="com.lzj.www.model" />
    </bean>
    
    <!-- 定义事务管理 -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>

            <tx:method name="create*" propagation="REQUIRED" />
            <tx:method name="save*" propagation="REQUIRED" />
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="remove*" propagation="REQUIRED" />
            <tx:method name="del*" propagation="REQUIRED" />
            <tx:method name="import*" propagation="REQUIRED" />
            <!-- 
                read-only="true"  表示只读
             -->
            <tx:method name="*" propagation="NOT_SUPPORTED" read-only="true" />
        </tx:attributes>
    </tx:advice>

    <!-- 定义切面,执行有关的hibernate session的事务操作 -->
    <aop:config>
        <aop:pointcut id="serviceOperation" expression="execution(* com.lzj.www.service.impl.*.*(..))" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />
    </aop:config>
    
     <!-- 扫描有注解的文件  base-package 包路径 -->
    <context:component-scan base-package="com.lzj.www.model.User"/>
    
    <bean id="userService" class="com.lzj.www.service.impl.UserServiceImpl">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
    
</beans>

 test:

 

 

 

package com.lzj.www.test;

import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.lzj.www.model.User;
import com.lzj.www.service.UserService;

public class test {

	@Test
	public void test01(){
		
		BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService userService = (UserService)factory.getBean("userService");
		User user = new User();
		user.setName("name");
		userService.addUser(user);
	}
	
	//用main的方法测试方便查错
	public static void main(String[] args) {
		
		BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService userService = (UserService)factory.getBean("userService");
		User user = new User();
		user.setName("name");
		userService.addUser(user);
		
	}
	
}
分享到:
评论

相关推荐

    Spring4 MVC Hibernate4集成(Annotation)

    Spring4 MVC Hibernate4集成,使用Annotation,封装dao层和service层。 环境: spring 4.0.3.RELEASE hibernate 4.3.5.Final mysql 5.1.29

    spring3、 hibernate4 配置声明式事务管理(annotation方式)

    Hibernate本身也支持事务管理,但通常与Spring集成时,我们使用Spring的事务管理。`HibernateTransactionManager`是Spring提供的专门用于管理Hibernate事务的类,它会自动处理Hibernate Session和JDBC Connection的...

    spring3+hibernate4配置声明式事务管理(annotation方式)

    在本实例中,Spring主要负责事务管理和与Hibernate的集成。 2. **Hibernate框架**:Hibernate是Java领域广泛使用的ORM(对象关系映射)工具,它简化了数据库操作,将Java对象和数据库表之间的映射关系自动处理。在...

    Struts2+Spring2+Hibernate3+Annotation所需JAR包

    - **struts2-spring-plugin-2.1.6.jar**:Struts2与Spring集成所需的插件,使得Struts2能够使用Spring管理Bean。 #### 2. Spring2 - **spring.jar**:Spring框架的核心库,包含了Spring框架的基本功能,如依赖注入...

    struts1.3+spring2.5+hibernate3.3 组合开发 annotation实现

    在本项目中,这些框架的集成使用了注解(Annotation)来简化配置,使得代码更加简洁和易于维护。 Struts1.3 是一个基于 Model-View-Controller (MVC) 模式的开源框架,用于构建动态 Web 应用。它提供了一种结构化的...

    Spring_Hibernate_JAVAX_Annotation注解

    ### Spring_Hibernate_JAVAX_Annotation 注解详解 #### 一、概述 本文将详细介绍与SSH(Spring+Struts+Hibernate)开发相关的注解。这些注解覆盖了多个领域,如AspectJ、Batch处理、Spring框架本身的功能(包括...

    springboot集成hibernate

    注意,尽管我们在集成Hibernate,但我们并没有使用JPA,因此不需要`spring-boot-starter-data-jpa`依赖。上述配置中的`spring.jpa.hibernate.ddl-auto`用于控制数据库表的自动创建、更新等操作,`spring.jpa.show-...

    java8+tomcat8+struts2.5+spring4.3+hibernate5.2框架搭建详细过程

    ### Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 框架搭建详细过程 #### 一、环境配置与准备 在搭建一个基于Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 的项目前,首先需要对开发环境...

    Struts2+Spring2.5+Hibernate3+annotation 整合程序

    以上就是关于"Struts2+Spring2.5+Hibernate3+annotation"整合程序的相关知识点,这样的集成方案在多年前非常流行,为大型企业应用提供了稳定的基础。随着技术的发展,如今Spring Boot和Spring MVC等现代框架已经取代...

    Spring集成Hibernate写SQLServer

    在Spring集成Hibernate的过程中,我们需要配置Spring的DataSource、SessionFactory以及Hibernate的实体类和映射文件。DataSource是连接数据库的桥梁,SessionFactory则负责创建Session对象,Session对象是执行数据库...

    Spring与Hibernate集成---声明式事务

    集成的关键在于Spring的Transaction Management,它提供了声明式和编程式两种事务管理方式。声明式事务管理是通过在配置文件或注解中定义事务边界,无需在业务代码中显式处理事务开始、提交和回滚,更易于维护和管理...

    SpringMVC Spring Hibernate 框架整合 Annotation Maven Project

    Spring还支持数据访问集成,包括对JDBC、Hibernate的支持,使得数据库操作更加便捷。 **Hibernate** Hibernate是Java领域最流行的ORM框架之一,它将Java对象与数据库表进行映射,通过对象的方式来操作数据库。...

    Hibernate和spring集成

    《Hibernate与Spring集成详解》 在Java开发领域,Spring框架以其强大的依赖注入和面向切面编程能力,成为了企业级应用的首选。而Hibernate作为一款优秀的对象关系映射(ORM)工具,极大地简化了数据库操作。当这...

    OSGi、Spring、Hibernate集成:动态注册实体类

    平台依赖度低的解决方案 ...测试环境:equinox3.5.2。其它用到的Bundle包括hibernate、hibernate-annotation、hsqldb、 spring、spring-osgi等。请到http://www.springsource.com/repository/下载。

    CXF集成spring hibernate

    2. **集成Hibernate**:接着,设置Hibernate的配置文件,包括数据库连接信息、实体类映射等。在Spring配置文件中,创建SessionFactory的bean,并配置事务管理器。利用Spring的`&lt;tx:annotation-driven&gt;`标签启用基于...

    完整版spring hibernate整合采用annotation

    标题"完整版spring hibernate整合采用annotation"指的是使用注解的方式将Spring和Hibernate进行集成。这种方式相比传统的XML配置更为简洁,减少了大量配置文件,提高了代码的可读性和维护性。 首先,我们需要理解...

    struts2+spring2+hibernate3 Annotation的整合

    Struts2、Spring和Hibernate是Java企业级开发中三大核心框架,它们的集成极大地提高了开发效率和代码质量。本文将详细解析"Struts2+Spring2+Hibernate3 Annotation的整合"这一主题,主要涵盖以下几个方面: 1. **...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    本篇文章将重点讨论如何在Spring框架中集成Hibernate,并探讨编程式事务管理和Spring AOP的声明式事务。 首先,让我们理解Spring与Hibernate的集成。为了整合这两个库,你需要在Spring配置文件中定义Hibernate的...

    Spring4+Hibernate4+Atomikos3.3多数据源事务管理

    总的来说,Spring4、Hibernate4和Atomikos3.3的结合使用,为开发者提供了一种强大且灵活的方式来处理多数据源的事务问题,使得在复杂分布式系统中的数据一致性得到保障。通过理解并熟练掌握这些技术,开发者可以构建...

    hibernate annotation spring 中文参考文档

    "spring-framework-reference"文档中详细介绍了Spring的核心特性,包括Bean的声明和管理、Spring MVC的使用、数据访问支持(如JDBC、Hibernate集成)以及Spring的其他模块,如Spring Boot和Spring Security。...

Global site tag (gtag.js) - Google Analytics