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,封装dao层和service层。 环境: spring 4.0.3.RELEASE hibernate 4.3.5.Final mysql 5.1.29
Hibernate本身也支持事务管理,但通常与Spring集成时,我们使用Spring的事务管理。`HibernateTransactionManager`是Spring提供的专门用于管理Hibernate事务的类,它会自动处理Hibernate Session和JDBC Connection的...
在本实例中,Spring主要负责事务管理和与Hibernate的集成。 2. **Hibernate框架**:Hibernate是Java领域广泛使用的ORM(对象关系映射)工具,它简化了数据库操作,将Java对象和数据库表之间的映射关系自动处理。在...
- **struts2-spring-plugin-2.1.6.jar**:Struts2与Spring集成所需的插件,使得Struts2能够使用Spring管理Bean。 #### 2. Spring2 - **spring.jar**:Spring框架的核心库,包含了Spring框架的基本功能,如依赖注入...
在本项目中,这些框架的集成使用了注解(Annotation)来简化配置,使得代码更加简洁和易于维护。 Struts1.3 是一个基于 Model-View-Controller (MVC) 模式的开源框架,用于构建动态 Web 应用。它提供了一种结构化的...
### Spring_Hibernate_JAVAX_Annotation 注解详解 #### 一、概述 本文将详细介绍与SSH(Spring+Struts+Hibernate)开发相关的注解。这些注解覆盖了多个领域,如AspectJ、Batch处理、Spring框架本身的功能(包括...
注意,尽管我们在集成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 的项目前,首先需要对开发环境...
以上就是关于"Struts2+Spring2.5+Hibernate3+annotation"整合程序的相关知识点,这样的集成方案在多年前非常流行,为大型企业应用提供了稳定的基础。随着技术的发展,如今Spring Boot和Spring MVC等现代框架已经取代...
在Spring集成Hibernate的过程中,我们需要配置Spring的DataSource、SessionFactory以及Hibernate的实体类和映射文件。DataSource是连接数据库的桥梁,SessionFactory则负责创建Session对象,Session对象是执行数据库...
集成的关键在于Spring的Transaction Management,它提供了声明式和编程式两种事务管理方式。声明式事务管理是通过在配置文件或注解中定义事务边界,无需在业务代码中显式处理事务开始、提交和回滚,更易于维护和管理...
Spring还支持数据访问集成,包括对JDBC、Hibernate的支持,使得数据库操作更加便捷。 **Hibernate** Hibernate是Java领域最流行的ORM框架之一,它将Java对象与数据库表进行映射,通过对象的方式来操作数据库。...
《Hibernate与Spring集成详解》 在Java开发领域,Spring框架以其强大的依赖注入和面向切面编程能力,成为了企业级应用的首选。而Hibernate作为一款优秀的对象关系映射(ORM)工具,极大地简化了数据库操作。当这...
平台依赖度低的解决方案 ...测试环境:equinox3.5.2。其它用到的Bundle包括hibernate、hibernate-annotation、hsqldb、 spring、spring-osgi等。请到http://www.springsource.com/repository/下载。
2. **集成Hibernate**:接着,设置Hibernate的配置文件,包括数据库连接信息、实体类映射等。在Spring配置文件中,创建SessionFactory的bean,并配置事务管理器。利用Spring的`<tx:annotation-driven>`标签启用基于...
标题"完整版spring hibernate整合采用annotation"指的是使用注解的方式将Spring和Hibernate进行集成。这种方式相比传统的XML配置更为简洁,减少了大量配置文件,提高了代码的可读性和维护性。 首先,我们需要理解...
Struts2、Spring和Hibernate是Java企业级开发中三大核心框架,它们的集成极大地提高了开发效率和代码质量。本文将详细解析"Struts2+Spring2+Hibernate3 Annotation的整合"这一主题,主要涵盖以下几个方面: 1. **...
本篇文章将重点讨论如何在Spring框架中集成Hibernate,并探讨编程式事务管理和Spring AOP的声明式事务。 首先,让我们理解Spring与Hibernate的集成。为了整合这两个库,你需要在Spring配置文件中定义Hibernate的...
总的来说,Spring4、Hibernate4和Atomikos3.3的结合使用,为开发者提供了一种强大且灵活的方式来处理多数据源的事务问题,使得在复杂分布式系统中的数据一致性得到保障。通过理解并熟练掌握这些技术,开发者可以构建...
"spring-framework-reference"文档中详细介绍了Spring的核心特性,包括Bean的声明和管理、Spring MVC的使用、数据访问支持(如JDBC、Hibernate集成)以及Spring的其他模块,如Spring Boot和Spring Security。...