spring+hibernate ---laobai

biz包:
package com.etc.biz;

import java.util.List;

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

import com.etc.entity.Animal;

public interface AnimalBiz
{
	List<Animal> findAll();
	Animal findById(int aid);
	void add(Animal an);
}
-----------------------------------------------------------------------------------------------
package com.etc.biz;

import java.util.List;

import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.etc.dao.AnimalDao;
import com.etc.entity.Animal;

public class AnimalBizImp  implements AnimalBiz
{
	//让业务持有dao的抽象接口,通过spring注入dao实例
	private AnimalDao dao;

	public AnimalDao getDao() {
		return dao;
	}

	public void setDao(AnimalDao dao) {
		this.dao = dao;
	}

	public List<Animal> findAll()
	{

		return  dao.findAll();
	}

	public Animal findById(int aid)
	{
		return dao.findById(aid);
	}

	public void add(Animal an)
	{
		dao.add(an);
	}
}
---------------------------------------------------------------------------------------------
dao包:
package com.etc.dao;

import java.util.List;

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

import com.etc.entity.Animal;

public interface AnimalDao
{
	List<Animal> findAll();
	Animal findById(int aid);
	void add(Animal an);
}
----------------------------------------------------------------------------------------------
package com.etc.dao;

import java.util.List;

import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.etc.entity.Animal;

public class AnimalDaoImp extends HibernateDaoSupport implements AnimalDao
{
	public List<Animal> findAll()
	{
		String hql = "from Animal";
		return  this.getHibernateTemplate().find(hql);
	}

	public Animal findById(int aid)
	{
		return this.getHibernateTemplate().get(Animal.class, aid);
	}

	public void add(Animal an)
	{
		this.getHibernateTemplate().save(an);
	}
}
--------------------------------------------------------------------------------------------
test包:

package com.etc.test;

import java.util.List;

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

import com.etc.biz.AnimalBiz;
import com.etc.dao.AnimalDao;
import com.etc.entity.Animal;

public class Test
{
	public static void main(String[] args)
	{
		BeanFactory fac = new ClassPathXmlApplicationContext("applicationContext.xml");

		AnimalBiz biz = (AnimalBiz) fac.getBean("biz");

		List<Animal> list = biz.findAll();

		for(Animal a:list)
			System.out.println(a);

		/*Animal an = biz.findById(1);
		System.out.println(an);*/

		/*try
		{
			Animal an = new Animal("火鸡", 2);
			biz.add(an);
			System.out.println("插入成功!");
		}
		catch (Exception e)
		{
			System.out.println("插入失败!");
			e.printStackTrace();

		}
		*/
	}
}
---------------------------------------------------------------------------------------------
applicationContext.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"
	xsi:schemaLocation=
	"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation"
			value="file:src/hibernate.cfg.xml">
		</property>
	</bean>
	<!-- 创建dao对象 实现类-->
	<bean id="dao" class="com.etc.dao.AnimalDaoImp">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
	<!-- 创建biz对象实现类 -->
	<bean id="biz" class="com.etc.biz.AnimalBizImp">
		<property name="dao" ref="dao"/>
	</bean>
	<!-- 创建事务管理器 -->
	<bean id="tm" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>

	<!-- 配置事务通知的规则 -->
	<tx:advice id="myadvice" transaction-manager="tm">
		<tx:attributes> <!-- 配置事务的传播特性 -->
			<!-- add方法需要事务-->
			<tx:method name="add*" propagation="REQUIRED"/>  

			<tx:method name="find*" read-only="true"/>  <!-- find开头的方法只读,不能修改数据 -->
		</tx:attributes>
	</tx:advice>
	<!-- 配置切入 -->
	<aop:config>
		<aop:pointcut expression="execution(* com.etc.biz.AnimalBiz.*(..))" id="mypc"/>
		<!-- 引用tx通知,引用切线mypc -->
		<aop:advisor advice-ref="myadvice" pointcut-ref="mypc"/>
	</aop:config>
</beans>

  

时间: 2024-10-24 21:33:39

spring+hibernate ---laobai的相关文章

spring(一)--spring/springmvc/spring+hibernate(mybatis)配置文件

这篇文章用来总结一下spring,springmvc,spring+mybatis,spring+hibernate的配置文件 1.web.xml 要使用spring,必须在web.xml中定义分发器等信息,基本的配置信息如下: <?xml version="1.0" encoding= "UTF-8"?> <web-app version= "3.0" xmlns="http://java.sun.com/xml/n

SSH(Struts2+Spring+Hibernate)框架搭建流程&lt;注解的方式创建Bean&gt;

此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblogs.com/wkrbky/p/5912810.html 一.Hibernate(数据层)的搭建: 实现流程 二.Spring(注入实例)的使用: 实现流程 三.Struts2(MVC)的搭建: 实现流程 这里注意一点问题: Struts2与Hibernate在一起搭建,antlr包,有冲突.MyE

Struts2+Spring+Hibernate 三大框架的合并集成

这次来看看Struts2+Spring+Hibernate三大框架的整合应用,主要是Spring和Hibernate框架的整合,因为前边已经将Strtus2+Spring整合过了基本一样.  首先看一下分工吧: Struts2做的MVC的流程框架,主要完成从客户端访问到选择action的过程,其中过滤器起到了Controller的作用,action属于model,而jsp则是view页面的展示. Spring主要利用Ioc的特长来管理各种对象:action,service,dao,数据访问源,H

使用spring+hibernate+atomikos+tomcat构建分布式事务

本文通过一个demo,介绍如何使用spring+hibernate+atomikos+tomcat构建在一个事务中涉及两个数据源的web应用. demo功能:实现一个能成功提交和回滚的涉及两个数据库数据源的XA事务. demo将实现: 1.一次性在两个数据库的两张表中各插入一条数据并提交. 2.一次性在两个数据库的两张表中各插入一条数据并回滚. 测试方式:restful web api 使用工具: spring 4.1.1.RELEASE hibernate 4.2.4.Final atomik

Spring/Hibernate应用性能调优

对于大多数典型的Spring/Hibernate 企业应用来说,应用程序的性能几乎完全取决于它的持久层的性能. 这篇文章将会对如何确认在“数据库约束”的应用前,使用7种“快速见效”的技巧来帮助我们提升应用性能. 如何确认一个应用受到“数据库约束” 为了验证一个应用程序是否受到“数据库约束”,首先在一些开发环境中做一些普遍的行为,即使用VisualVM来监控. VisualVM是一个搭载JDK的Java解析器,它通过调用jvisualvm来进行命令行登陆. 登陆Visual VM后按照这样做: 运

spring+hibernate 下载

http://www.springframework.net/download.html http://sourceforge.net/projects/nhibernate/files/NHibernate/3.2.0GA/ http://wenku.baidu.com/link?url=w124wzrBgX06oc-MpdMV_Su3xqcyLwwUlhSy7RDP-4D9thhCf6A8WzeFU3pJLG27TB3RrSoU1M0HbCFqPbHrgxUBwnNKd9PrO1v1TFQf

基于注解的struts2+spring+hibernate集成

applicationContext.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:aop="http://www.spri

Spring+hibernate 配置实例

转自:http://www.cnblogs.com/hongten/archive/2012/03/10/java_spring_hibernate.html 项目结构: http://www.cnblogs.com/hongten/gallery/image/112469.html 使用的jar包: hibernate核心安装包:hibernate3.jarlib\rquired\*.jarlib\optional\encache-1.2.3.jar    (二级缓存) lib\test\sl

spring+hibernate整合:报错org.hibernate.HibernateException: No Session found for current thread

spring+hibernate整合:报错信息如下 org.hibernate.HibernateException: No Session found for current thread at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:106) at org.hibernate.internal.SessionFactoryImpl.getC