`

spring hibernate mysql配置事务(SessionFactory) + AOP

阅读更多

====================spring.xml====================

 

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
		   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">


	<bean id="placeHolder"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
		p:locations="classpath:jdbc.properties" />

	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName"
			value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="annotatedClasses">
			<list>
				<value>
					com.spring.ch11.dao.hibernate.nativeapi.aop.Demo
				</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQL5InnoDBDialect
				</prop>
				<prop key="show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.use_sql_comments">true</prop>
			</props>
		</property>
	</bean>

	<bean id="com.spring.ch11.dao.hibernate.nativeapi.aop.NativeApiImpl"
		class="com.spring.ch11.dao.hibernate.nativeapi.aop.NativeApiImpl"
		p:sessionFactory-ref="sessionFactory">
	</bean>

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

	<aop:config>
		<aop:pointcut
			expression="execution(* com.spring.ch11.dao.hibernate.nativeapi.aop.NativeApiImpl.*(..))"
			id="myPointCut" />
		<aop:advisor pointcut-ref="myPointCut" advice-ref="txAdvice" />
	</aop:config>

	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="*" read-only="false" />
		</tx:attributes>
	</tx:advice>
</beans>

 

 

====================INativeApi.java====================

package com.spring.ch11.dao.hibernate.nativeapi.aop;

import java.util.List;

import com.spring.ch11.dao.hibernate.daosupport.DomainObject;

public interface INativeApi {

	public List<Demo> getAll();
	public void save(DomainObject domainObject);

}

 

 

====================NativeApiImpl .java====================

package com.spring.ch11.dao.hibernate.nativeapi.aop;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Transactional;

import com.spring.ch11.dao.hibernate.daosupport.DomainObject;

public class NativeApiImpl implements INativeApi {

	private SessionFactory sessionFactory;

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	@Override
	public List<Demo> getAll() {
		Session session = sessionFactory.getCurrentSession();
		return session.createQuery("from Demo").list();
	}

	@Override
	public void save(DomainObject domainObject) {
		sessionFactory.getCurrentSession().save(domainObject);
	}

}

 

 

====================Demo.java====================

package com.spring.ch11.dao.hibernate.nativeapi.aop;

import java.io.Serializable;

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

@Entity
public class Demo implements Serializable{
	private int id;
	private float unitPrice;
	private String name;

	@Id
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public float getUnitPrice() {
		return unitPrice;
	}

	public void setUnitPrice(float unitPrice) {
		this.unitPrice = unitPrice;
	}

	public String getName() {
		return name;
	}

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

}

 

 

==========================================

package com.spring.ch11.dao.hibernate.nativeapi.aop;

import java.util.List;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Client {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext(
				"spring.xml", Client.class);
		INativeApi nativeApi = (INativeApi) context.getBean(NativeApiImpl.class
				.getName());
		List<Demo> demoList = nativeApi.getAll();
		for (Demo demo : demoList) {
			System.out.println(ToStringBuilder.reflectionToString(demo));
		}
	}

}

 

分享到:
评论

相关推荐

    Spring+Hibernate+MySql的应用实例

    在Spring+Hibernate的集成中,Spring可以作为Hibernate的事务管理器,处理事务的开始、提交、回滚等操作。通过SessionFactory和Session接口,Hibernate可以进行对象持久化,将Java对象转换为数据库中的记录。 **...

    spring配置sessionFactory(spring3.2.3+hibernate4.2.2)

    本文将详细讲解如何在Spring 3.2.3版本中配置SessionFactory,以便整合Hibernate 4.2.2,实现对数据库操作的高效管理。SessionFactory是Hibernate的核心组件,它负责创建Session对象,而Session则是与数据库交互的...

    现有Mysql数据库,写Spring + Hibernate的配置文件

    Spring作为一个全面的开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等核心功能,而Hibernate则是一个优秀的对象关系映射(ORM)框架,使得Java开发者可以更加方便地操作数据库。在本案例中,我们将探讨...

    spring3.0+hibernate3.3+mysql8.0

    在Spring框架中,我们可以利用Spring的HibernateTemplate或SessionFactoryBean来配置和管理Hibernate,以实现数据持久化。 **MySQL 8.0** 是一个开源的关系型数据库管理系统,以其高性能、稳定性及易用性而闻名。...

    flex+hibernate+Spring

    Spring 提供了一个容器,用于管理对象的生命周期和配置,同时,Spring 还包含了数据访问、Web、事务管理等多个模块,可以与Hibernate等其他框架无缝集成。 整合 Flex、Hibernate 和 Spring 的目标是构建一个前端...

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

    当我们需要在应用程序中进行事务管理时,Spring提供了一种声明式的方式,使得事务配置更为简洁。本篇将详细介绍如何在Spring 3和Hibernate 4中通过注解来实现声明式事务管理。 首先,我们需要在项目中引入Spring和...

    Spring+Hibernate+Mysql简单搭建

    5. **配置Spring**:编写Spring的配置文件(如applicationContext.xml),声明数据源、SessionFactory以及事务管理器等。 6. **配置Hibernate**:在hibernate.cfg.xml文件中设置数据库连接信息,以及实体类到数据库...

    spring + spring mvc + hibernate + mysql 整合开发任务流程后台管理系统

    3. 配置Spring:设置Spring的配置文件,包括Bean的定义、AOP配置、事务管理等。 4. 配置Spring MVC:定义DispatcherServlet、配置视图解析器、编写Controller,处理前端请求。 5. 集成Hibernate:配置Hibernate的...

    (sturts2+hibernate+spring+mysql+jquery)人事管理系统 登录注册 用户部门增删改查

    在本项目中,我们主要探讨的是基于SSH(Struts2、Hibernate、Spring)框架与MySQL数据库结合的人事管理系统。SSH框架是Java开发中常见的MVC(Model-View-Controller)架构,它集成了Struts2作为表现层,Hibernate...

    Spring-hibernate结合使用全xml配置方式

    配置完成后,需要创建HibernateTemplate或SessionFactoryBean,以便Spring可以管理Hibernate的Session。例如: ```xml &lt;bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate...

    spring3+hibernate4+springmvc+druid连接池

    - 使用AOP进行事务管理:Spring AOP可以用来管理Hibernate的事务,确保数据的一致性。 6. **监控与调试**:Druid提供了强大的监控功能,可以通过Web方式查看连接池状态,包括活动连接数、等待队列、SQL执行情况等...

    struts2+spring+hibernate+mysql(eclipse)整合增删改查

    4. **配置Spring**:创建spring-context.xml文件,定义Bean的配置,包括DataSource、SessionFactory、TransactionManager等。同时,配置AOP事务管理。 5. **配置Hibernate**:编写hibernate.cfg.xml文件,配置...

    struts2.3+hibernate4.1+spring3.2+EasyUI1.36整合实现的java后台管理系统

    Spring3.2作为一款全面的企业级应用框架,包含了依赖注入、AOP(面向切面编程)、事务管理、数据访问/集成等多种功能。在这个版本中,Spring对RESTful服务的支持进一步加强,同时对Java EE 6的兼容性也有所提升。...

    spring+hibernate+mysql整合Demo

    首先,需要配置Spring的ApplicationContext,声明Bean定义,包括SessionFactory(Hibernate的会话工厂)和DataSource(数据源)。 - **配置Hibernate** 配置Hibernate的SessionFactory,包括数据库连接信息、实体...

    SpringMVC+hibernate4+Spring4+mysql整合demo

    在这个"SpringMVC+hibernate4+Spring4+mysql整合demo"中,我们将探讨如何将这些组件集成在一起,实现一个简单的登录功能。 首先,让我们了解每个框架的基本职责: 1. **Spring**:Spring是一个全面的Java应用框架...

    spring+hibernate 分页 +mysql

    1. **配置Hibernate**: 首先,我们需要在Spring配置文件中设置Hibernate的相关属性,包括数据源、SessionFactory和TransactionManager。 2. **定义实体类和映射**: 创建Java实体类,对应数据库中的表,并使用...

    spring4.0整合hibernate5.1.0.Final+mysql5

    - **配置Spring**:创建Spring的配置文件(如applicationContext.xml),配置DataSource、SessionFactory、TransactionManager等bean,实现数据源、会话工厂和事务管理。 - **创建实体类**:根据数据库表结构,...

    Spring3 + Hibernate3 + Lucene3 + Easyui + Mysql 简单例子

    这是一个整合了多个核心技术的Web应用开发实例,涵盖了Spring3、Hibernate3、Lucene3、EasyUI和MySQL等组件。下面将分别对这些技术进行详细解释。 **Spring3**: Spring是一个开源的应用框架,核心功能包括依赖注入...

    struts+spring+hibernate

    Struts、Spring 和 Hibernate 是Java开发中非常著名的三个开源框架,它们组合在一起形成的SSH(Struts、Spring、Hibernate)框架,是企业级Web应用开发的常用解决方案。SSH框架的整合可以实现模型-视图-控制器(MVC...

Global site tag (gtag.js) - Google Analytics