====================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的集成中,Spring可以作为Hibernate的事务管理器,处理事务的开始、提交、回滚等操作。通过SessionFactory和Session接口,Hibernate可以进行对象持久化,将Java对象转换为数据库中的记录。 **...
本文将详细讲解如何在Spring 3.2.3版本中配置SessionFactory,以便整合Hibernate 4.2.2,实现对数据库操作的高效管理。SessionFactory是Hibernate的核心组件,它负责创建Session对象,而Session则是与数据库交互的...
Spring作为一个全面的开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等核心功能,而Hibernate则是一个优秀的对象关系映射(ORM)框架,使得Java开发者可以更加方便地操作数据库。在本案例中,我们将探讨...
在Spring框架中,我们可以利用Spring的HibernateTemplate或SessionFactoryBean来配置和管理Hibernate,以实现数据持久化。 **MySQL 8.0** 是一个开源的关系型数据库管理系统,以其高性能、稳定性及易用性而闻名。...
Spring 提供了一个容器,用于管理对象的生命周期和配置,同时,Spring 还包含了数据访问、Web、事务管理等多个模块,可以与Hibernate等其他框架无缝集成。 整合 Flex、Hibernate 和 Spring 的目标是构建一个前端...
当我们需要在应用程序中进行事务管理时,Spring提供了一种声明式的方式,使得事务配置更为简洁。本篇将详细介绍如何在Spring 3和Hibernate 4中通过注解来实现声明式事务管理。 首先,我们需要在项目中引入Spring和...
5. **配置Spring**:编写Spring的配置文件(如applicationContext.xml),声明数据源、SessionFactory以及事务管理器等。 6. **配置Hibernate**:在hibernate.cfg.xml文件中设置数据库连接信息,以及实体类到数据库...
3. 配置Spring:设置Spring的配置文件,包括Bean的定义、AOP配置、事务管理等。 4. 配置Spring MVC:定义DispatcherServlet、配置视图解析器、编写Controller,处理前端请求。 5. 集成Hibernate:配置Hibernate的...
在本项目中,我们主要探讨的是基于SSH(Struts2、Hibernate、Spring)框架与MySQL数据库结合的人事管理系统。SSH框架是Java开发中常见的MVC(Model-View-Controller)架构,它集成了Struts2作为表现层,Hibernate...
配置完成后,需要创建HibernateTemplate或SessionFactoryBean,以便Spring可以管理Hibernate的Session。例如: ```xml <bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate...
- 使用AOP进行事务管理:Spring AOP可以用来管理Hibernate的事务,确保数据的一致性。 6. **监控与调试**:Druid提供了强大的监控功能,可以通过Web方式查看连接池状态,包括活动连接数、等待队列、SQL执行情况等...
4. **配置Spring**:创建spring-context.xml文件,定义Bean的配置,包括DataSource、SessionFactory、TransactionManager等。同时,配置AOP事务管理。 5. **配置Hibernate**:编写hibernate.cfg.xml文件,配置...
Spring3.2作为一款全面的企业级应用框架,包含了依赖注入、AOP(面向切面编程)、事务管理、数据访问/集成等多种功能。在这个版本中,Spring对RESTful服务的支持进一步加强,同时对Java EE 6的兼容性也有所提升。...
首先,需要配置Spring的ApplicationContext,声明Bean定义,包括SessionFactory(Hibernate的会话工厂)和DataSource(数据源)。 - **配置Hibernate** 配置Hibernate的SessionFactory,包括数据库连接信息、实体...
在这个"SpringMVC+hibernate4+Spring4+mysql整合demo"中,我们将探讨如何将这些组件集成在一起,实现一个简单的登录功能。 首先,让我们了解每个框架的基本职责: 1. **Spring**:Spring是一个全面的Java应用框架...
1. **配置Hibernate**: 首先,我们需要在Spring配置文件中设置Hibernate的相关属性,包括数据源、SessionFactory和TransactionManager。 2. **定义实体类和映射**: 创建Java实体类,对应数据库中的表,并使用...
- **配置Spring**:创建Spring的配置文件(如applicationContext.xml),配置DataSource、SessionFactory、TransactionManager等bean,实现数据源、会话工厂和事务管理。 - **创建实体类**:根据数据库表结构,...
这是一个整合了多个核心技术的Web应用开发实例,涵盖了Spring3、Hibernate3、Lucene3、EasyUI和MySQL等组件。下面将分别对这些技术进行详细解释。 **Spring3**: Spring是一个开源的应用框架,核心功能包括依赖注入...
Struts、Spring 和 Hibernate 是Java开发中非常著名的三个开源框架,它们组合在一起形成的SSH(Struts、Spring、Hibernate)框架,是企业级Web应用开发的常用解决方案。SSH框架的整合可以实现模型-视图-控制器(MVC...